用MongoDB查询帆船项目中的嵌入式集合
-
27-12-2019 - |
题
我在我的项目中使用sails-mongo,我需要在嵌入的集合中执行一个查询。 我的数据是如下所示:
{
"_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
。
显然风帆不支持此功能,因此我正在考虑使用 mongodb-native 制作这种查询。
随着Sails-Mongo使用MongoDB-Native,我可以在我的帆项目中访问DB对象吗?或者我需要使用mongodb-native构建新连接?
如果有人有更好的想法,我会感激不尽。谢谢
解决方案
如果您需要做的是 Access 嵌入式评论,水线应该正常工作。只需执行普通的find
或findOne
,并且应该在返回的对象上访问注释。
如果您需要查询评论,例如,要通过某个作者查找发表评论的帖子,您可以使用Sails Model类的mongodb-native
方法访问底层生成的.native()
集合:
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
});
});
. 不隶属于 StackOverflow