MongoError:$ all需要数组

时间:2014-02-04 14:45:44

标签: node.js mongodb sails.js

我正在使用sailsjs mongodb和node.js 我在mongodb查询中出现错误以获取错误请帮忙!
我希望获得与 $ all完全匹配的消息的结果:[senderID,sendToID]

这是mongodb中的文档“消息”。

{
    "users": [
        "52ed09e1d015533c124015d5",
        "52ed4bc75ece1fb013fed7f5" 
    ],
    "user_msgs": [],
    "createdAt": ISODate("2014-02-04T11:59:53.220Z"),
    "updatedAt": ISODate("2014-02-04T11:59:53.220Z"),
    "_id": ObjectID("52f0d639b922c9142763c336")
}

现在我想查询

    Message.find({ users : {  $all:  [ msg.sender ,   msg.sendTo ]  } })

                    .done(function (err, detail) {
                if (err) {              
                    console.log(err)
                  } else {

                    console.log( detail)}

          });

返回错误

{[MongoError:$all requires array] name:'MongoError'} 

我正在关注文档 http://docs.mongodb.org/manual/reference/operator/query/all/ 但仍然不知道是什么原因引起的问题

1 个答案:

答案 0 :(得分:1)

在Waterline中,目前没有办法查询嵌入式记录。您可以在sails-mongo中下载到本机mongo驱动程序并运行查询。以下内容应该为您提供所需的信息。

User.native(function(err, collection) {
    collection.find({ users: { 
        $all: [ "52ed09e1d015533c124015d5", "52ed4bc75ece1fb013fed7f5" ] 
    }}).toArray(function(err, docs) {
       // Do something here
    });
});