首页 > 代码库 > .NET下对MongoDB进行操作(二)
.NET下对MongoDB进行操作(二)
这次说下关于利用C#driver,对mongoDB进行简单的查询。
我们可以利用Query类中的静态方法来创建一系列query,达到查询的目的。
Query在using MongoDB.Driver.Builders这一名称空间中。
1. 单一条件查询,可以参考如下代码:
var query = Query.EQ("ColName", "Value"); foreach (BsonDocument doc in collection.Find(query)) { Debug.WriteLine(doc["ColName"].ToString() + "\t"); }
2. 若要进行条件组合,比如And,或者OR,可以参考一下代码:
var query = Query.Or( Query.EQ("ColName1", "Value1"), Query.EQ("ColName2", "Value2") ); foreach (BsonDocument doc in dotNetCollection.Find(query)) { Debug.WriteLine(doc["ColName1"].ToString() + "\t" + doc["ColName2"].ToString()); }
利用以上这种QueryBuilder来创建query是MongoDB所推荐的方法,简单而且清晰。
3. 若要返回指定对象,可以参照一下代码:
var query = Query<table1>.EQ(b => b.testCol1, "bbb"); foreach (table1 ele in dotNetCollection.FindAs<table1>(query)) { Debug.WriteLine(ele.testCol1 + "\t" + ele.testCol2); }
其中table1的定义为:
public class table1 { public ObjectId _id {get; set;} public string testCol1 { get; set; } public string testCol2 { get; set; } }
这里需要注意的是_id,必须含有这个属性,ObjectId为MongoDB.Bson.ObjectId,不然在读取数据的时候会产生”Element ‘_id‘ does not match any field or property of class“这一错误。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。