c#開發Mongo筆記第三篇
今天主要測試了一下查詢功能了,當然了主要還是為了讓查詢可以和我們平時使用的實體對象關聯起來,並且 那些BsonDocument和Collection我們操作起來不是太方便的
還是首先定義了一個用戶類,注意這個類需要和mongo中的對象的字段完全匹配,包括大小寫,不然查詢的時候會出現字段無法匹配的錯誤
復制代碼
public class User
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
復制代碼
有了實體類就是怎麼讓查詢結果和實體類關聯起來了,
var list= collection.FindAllAs<User>();
主要是在findAllAs的時候查出來一個泛型集合,但是這個集合無法轉成List集合(當然了,是我不會轉,還希望會轉的拍磚),它返回的集合是MongoCurror類型的,操作起來也不方便,干脆就用弱類型接收吧。
值得欣慰 的是這個集合在遍歷的時候可以轉換成User對象。
最大的好消息是在對這個集合查詢的時候支持linq查詢,是不是太強大了,讓我們一起歡呼吧!!
復制代碼
MongoDatabase db = MongoHelper.GetConnection();
MongoCollection collection = db.GetCollection<User>("user");
User user = new User();
user.Name = "lisi";
user.Age = 20;
collection.Insert<User>(user);
var list= collection.FindAllAs<User>();
foreach (User item in list.Where(u=>u.Name=="lisi"))
{
Response.Write(item.Name);
}
//刪除
// collection.Remove(new QueryDocument());
復制代碼
代碼都很簡單,主要是測試了一個把查詢結果轉成對象和一個linq條件查詢