我在我的项目中使用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 嵌入式评论,水线应该正常工作。只需执行普通的findfindOne,并且应该在返回的对象上访问注释。

如果您需要查询评论,例如,要通过某个作者查找发表评论的帖子,您可以使用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
    });
});
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top