1. 程式人生 > >MongoDB 檢索語句

MongoDB 檢索語句

mode etime .get long open lose reat spl 四種

在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: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 檢索語句