MongoDB 检索语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 检索语句相关的知识,希望对你有一定的参考价值。

在C#中使用MongoDb检索数据的几种方法

检索对象:

技术分享
[BsonIgnoreExtraElements]
        public class UserMongoModel
        {
            /// <summary>
            /// 
            /// </summary>
            public long UserID
            {
                set;
                get;
            }
            public string UserName
            {
                get;
                set;
            }
            /// <summary>
            /// 
            /// </summary>
            public int UserType
            {
                set;
                get;
            }

            /// <summary>
            /// 0-删除 1-未删除
            /// </summary>
            public int IsValid
            {
                set;
                get;
            }
            /// <summary>
            /// 
            /// </summary>
            public DateTime CreateTime
            {
                set;
                get;
            }

        }
View Code

其中BsonIgnoreExtraElements 在对象上最好加上,因为Mongodb的一些序列化方法和c#的不一样,比如日期格式,保存在Mongodb中的时间会自动扣减8个小时(本地时间)。使用BsonIgnoreExtraElements标示对象后,检索出来的时间属性不需要再次处理。

MongoClient的初始化有四种:

技术分享
MongoClient();
MongoClient(connectionString);
MongoClient(MongoClientSettings);
MongoClient(MongoUrl);
View Code

我这边使用了connectionString和MongoUrl这两种方法。其中connectionString链接字符串的值:mongodb://uname:[email protected]:port/database  。其中uname是用户名,pwd是密码。hostip是服务器ip地址,port是端口号,database是数据库名称。

所以有var client=new MongoClient(mongodb://uname:[email protected]:port)  或者

MongoUrl url = new MongoUrl(mongodb://uname:[email protected]:port/database );
var client = new MongoClient(url);

获取数据库名称的方法 string databaseName = url.DatabaseName;

获取数据库对象:

var db=client.GetDatabase(databaseName);

获取对应的表数据:

var collection=db.GetCollection<TDocument>(tablename)

其中TDocument可以是对应的UserMongoModel也可以是BsonDocument等。tablename是对应的表名称。

后面我们之间使用db和collection代表对应的库和表

 

1 最简单的检索,没有检索条件

 var filter = Builders<UserMongoModel>.Filter.Empty;
           
 var result = collection.Find<UserMongoModel>(filter);

 

2   如果是检索数据的总数

var filter = Builders<UserMongoModel>.Filter.Empty;
           
 var sum= collection.Find<UserMongoModel>(filter).Count();






以上是关于MongoDB 检索语句的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

用于从 cloudkit 检索单列的代码模式/片段

如何从片段中检索gridview中的图像?

检索数据未出现在 ListView 的片段中

MongoDB全文检索

从firebase检索图像以在片段中的回收器视图时出错