Как запросить документ в документе в MongoDB?

Хорошо, у меня есть эта структура документа в моей базе данных:

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

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


person jayjyli    schedule 25.09.2013    source источник


Ответы (1)


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

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"));
person mnemosyn    schedule 26.09.2013
comment
Спасибо! Конечный запрос - это именно то, как я его сделал. Причина множественного числа recipients в том, что это должен быть список, каждый элемент которого имеет свойства name и hasRead. Извините, если я не прояснил это в своем примере. Спасибо за Ваш ответ! - person jayjyli; 26.09.2013