Реализация "$ or" с драйвером C # (Samus) для MongoDB - PullRequest
1 голос
/ 27 ноября 2010

Пожалуйста, дайте мне несколько примеров запросов в C # с "$ or" логикой. Я использую драйвер C #, написанный Самусом (https://github.com/samus/mongodb-csharp)...

1 Ответ

2 голосов
/ 29 ноября 2010

Если у вас есть типизированная коллекция (тип Person в этом примере), вы можете выполнить ИЛИ, используя Linq:

var mongo = new Mongo("Server=localhost:27017");
mongo.Connect();

List<Person> people = mongo["dbName"].GetCollection<Person>("people").Linq().Where(x => x.Age == 21 || x.Age == 35).ToList();

mongo.Disconnect();

В данный момент не будет использоваться оператор "$ or" (для || будет использоваться JavaScript, см. Режим JavaScript на этой вики-странице ).

Если вы действительно хотите использовать оператор "$ or", вы можете создать документ запроса и передать массив условий оператору "$ or":

var mongo = new Mongo("Server=localhost:27017");
mongo.Connect();

var query = new Document
{
    {"$or", new Document[] { new Document("Age", 21), new Document("Age", 35) } }
};
Document people = mongo["dbName"].GetCollection("people").Find(query);

mongo.Disconnect();
...