当前位置:Gxlcms > 数据库问题 > MongoDB 检索语句

MongoDB 检索语句

时间:2021-07-01 10:21:17 帮助过:21人阅读

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:pwd@hostip:port/database  。其中uname是用户名,pwd是密码。hostip是服务器ip地址,port是端口号,database是数据库名称。

所以有var client=new MongoClient(mongodb://uname:pwd@hostip:port)  或者

MongoUrl url = new MongoUrl(mongodb://uname:pwd@hostip: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 检索语句

标签:isp   nec   mongo   database   col   builder   creat   保存   pre   

人气教程排行