Как использовать запросы к базе данных Монго? - PullRequest
0 голосов
/ 13 декабря 2011

Я использую MongoDb для моего острого проекта вместо mysql, теперь я хочу использовать запрос типа select * from student Where (имя равно null или name = 'XXX') и (sno равно null или sno = 10),как я могу построить этот запрос в mongodb.

спасибо, @ dinnu.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Это должно помочь вам начать:

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 - это тип класса, который вы хотите десериализовать из БД. Теперь вы можете использовать курсор для повторения результатов этого запроса, например:

var someModel = cursor.FirstOrDefault();
0 голосов
/ 14 декабря 2011

Взгляните на Fluent Mongo (https://github.com/craiggwilson/fluent-mongo).. Он добавляет Linq поверх официального драйвера 10gen. До сих пор я обнаружил, что его использование является хорошим опытом. Он доступен через Nuget или GitHub.

...