MongoDB 檢索語句
在C#中使用MongoDb檢索數據的幾種方法
檢索對象:
[BsonIgnoreExtraElements] public class UserMongoModel { /// <summary> /// /// </summary> public long UserID { set; get; } public stringView CodeUserName { 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; } }
其中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 檢索語句