1

ИТАК У меня есть эта структура документа в моей базе данных:Как запросить документ в документе в MongoDB?

Message: { 
    uid: "id", 
    subject: "I AM A MESSAGE!", 
    body: "ASDF", 
    recipients: { 
     name: "John Doe", 
     hasRead: "true" 
    } 
} 

Как использовать драйвер C#, чтобы написать запрос для элементов, которые получили только Джон Доу? Я использую драйвер MongoDB v1.3.1.

ответ

2

В оболочке, запрос будет

db.Message.find({"recipients.name" : "John Doe"}); 

C# запрос зависит от структуры данных, которую вы используете в C#. Я раздражен тем, что recipients является множественным, но json не является массивом. Поскольку существуют разные способы сопоставления коллекций C# с JSON, я не могу представить запрос C# в форме linq.

Однако, учитывая структуру данных вы в курсе, что это должно работать:

db.GetCollection("Message").Find(Query.EQ("recipients.name", "John Doe")); 
+0

Спасибо! Конечный запрос - это именно то, как я это сделал. Причина, по которой «получатели» множественны, состоит в том, что она должна быть списком, каждый элемент имеет свойство «имя» и «hasRead». Извините, если я не сделал это ясно в моем примере. Спасибо за Ваш ответ! – jayjyli

Смежные вопросы