Запрос встроенной коллекции в проекте парусов с помощью mongodb

StackOverflow https://stackoverflow.com//questions/24062925

Вопрос

Я использую паруса-монго в своем проекте, и мне нужно выполнить один запрос во встроенной коллекции.Мои данные примерно такие:

{
    "_id" : ObjectId("53906c6254f36df504e99b8f"),
    "title"    : "my post"
    "comments" : [ 
        {
            "author" : "foo",
            "comment" : "foo comment"
        },
        {
            "author" : "bar",
            "comment" : "bar comment"
        }        
    ],
    "createdAt" : ISODate("2014-06-05T13:10:58.365Z"),
    "updatedAt" : ISODate("2014-06-05T13:10:58.365Z")
}

например, мне нужно извлечь comments автора foo.
Судя по всему, паруса еще не поддерживают эту функцию, поэтому я подумывал об использовании этого объекта. db из mongodb-родной сделать такой запрос.
Поскольку Sails-Mongo использует mongodb-native, могу ли я получить доступ к объекту БД в моем проекте Sails?Или мне нужно будет создать новое соединение, используя mongodb-native?
Если у кого-то есть идея получше, буду признателен.Спасибо

Это было полезно?

Решение

Если все, что вам нужно сделать, это доступ встроенные комментарии Waterline должны работать нормально.Просто сделай нормальный find или findOne, а комментарии к возвращаемым объектам должны быть доступны.

Если вам нужно запрос комментарии, напримерЧтобы найти сообщения с комментариями определенного автора, вы можете получить доступ к базовой mongodb-native сбор с помощью .native() метод вашего класса модели Sails:

Post.native(function(err, collection) {
    if (err) { 
        // handle error getting mongo collection
    }
    collection.find({'comments.author':'foo'}).toArray(function(err, results) {
        // Do something with results
    });
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top