0

我在我的项目中使用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作者的foo
显然sails还不支持这个功能,所以我正在考虑使用mongodb-nativedb的对象来进行这种查询。 由于sails-mongo 使用mongodb-native,我可以访问我的sails 项目中的db 对象吗?或者我需要使用 mongodb-native 建立一个新的连接? 如果有人有更好的想法,我将不胜感激。谢谢

4

1 回答 1

3

如果您需要做的就是访问嵌入的评论,那么 Waterline 应该可以正常工作。只需执行普通的findor 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
    });
});
于 2014-06-05T16:12:46.863 回答