mongo杂记
将list转化为IEnumrable<BsonValue>可通过new BsonArray(list)实现;
class questionInfo
{
public int _id { get; set; } //试题id
public List<questionSameInfo> Samequestions { get; set; }
public int IsMaster { set; get; }
}
public class questionSameInfo
{
public int Id { get; set; }
}
如果文档中存储的是如上的结构,想删除所有Samequestions中Id为1的项,可用如下方法:
var query = Query.EQ("Samequestions._id",_id);
var up = Update.Pull("Samequestions",Query.EQ("_id",_id));
var result = helper.UpdateAll(query, up);//helper为mongo数据库操作帮助类
在mongo客户端操作mongo数据库时,如果要给上述结构的Samequeions中的Id添加索引,可用如下方法:
> db.ddt_t_question.ensureIndex({"Samequestions._id":1})//注意是需要添加引号的 在第一层次添加索引是不需要添加索引的
如果想查询Samequeions中的数组长度大于2的项,可用如下方法:
> db.ddt_t_question.find({"$where":"this.Samequestions.length>2"})
如果想查询Samequeions中的数组长度等于2的项,可用如下方法:
> db.ddt_t_question.findOne({"Samequestions":{"$size":2}})
如果想在mongo客户端删除Samequestions列表下所有_id为206020的项,命令应该这么写:
>db.ddt_t_question.update({"_id":{$gt:-1}},{$pull:{"Samequestions":{"_id":206020}}},false,true)
3.0.3版本添加用户:db.createUser({user:"webuser",pwd:"12345QAZxsw",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});
根据配置文件启动Mongo:./mongod --config /etc/mongodb.conf