我使用MongoDb作为我的急剧项目而不是mysql,现在我想使用select * from student Where(name为null或name ='XXX')和(sno为null或sno = 10),我如何在mongodb中构建此查询。
感谢, @dinnu。
答案 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获得。