如何使用mongo数据库查询?

时间:2011-12-13 09:21:35

标签: mongodb mongodb-.net-driver

我使用MongoDb作为我的急剧项目而不是mysql,现在我想使用select * from student Where(name为null或name ='XXX')和(sno为null或sno = 10),我如何在mongodb中构建此查询。

感谢, @dinnu。

2 个答案:

答案 0 :(得分:1)

这应该让你开始:

var mongoServer = MongoDB.Driver.MongoServer.Create("mongodb://localhost?safe=true");
var mongoDatabase = mongoServer.GetDatabase("test");
var mongoCollection = mongoDatabase.GetCollection<TModel>("Test");

var cursor = mongoCollection.Find(Query.And(
    Query.Or(
        Query.EQ("Name", "xxx"),
        Query.EQ("Name", null)), 
    Query.Or(
        Query.EQ("sno", 10)),
        Query.EQ("sno", null)));

其中TModel是要从db反序列化的类的类型。现在,您可以使用游标迭代该查询的结果,例如:

var someModel = cursor.FirstOrDefault();

答案 1 :(得分:0)

看看Fluent Mongo(https://github.com/craiggwilson/fluent-mongo)。它将Linq添加到官方10gen驱动程序之上。到目前为止,我发现使用它是一种很好的体验。它可以通过Nuget或GitHub获得。