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

原文地址:https://www.cnblogs.com/zhenfeng/p/4307504.html