Запрос встроенной коллекции в проекте парусов с помощью mongodb
-
27-12-2019 - |
Вопрос
Я использую паруса-монго в своем проекте, и мне нужно выполнить один запрос во встроенной коллекции.Мои данные примерно такие:
{
"_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
});
});