我在我的项目中使用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
的{{1}}
显然帆还不支持此功能,因此我正在考虑使用mongodb-native的对象foo
进行此类查询。
由于sails-mongo使用mongodb-native,我可以在我的sails项目中访问db对象吗?或者我需要使用mongodb-native建立一个新的连接?
如果有人有更好的主意,我会感激不尽。感谢
答案 0 :(得分:3)
如果您需要做的只是访问嵌入的评论,Waterline应该可以正常工作。只需执行正常find
或findOne
,就可以在返回的对象上访问注释。
如果您需要查询评论,例如要查找某位作者发表评论的帖子,您可以使用Sails模型类的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
});
});