码迷,mamicode.com
首页 > 数据库 > 详细

.NET下对MongoDB进行操作(二)

时间:2014-07-14 10:07:41      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:blog   os   数据   for   cti   io   

这次说下关于利用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“这一错误。

.NET下对MongoDB进行操作(二),布布扣,bubuko.com

.NET下对MongoDB进行操作(二)

标签:blog   os   数据   for   cti   io   

原文地址:http://www.cnblogs.com/chopstick1983/p/3837467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!