如何通过逻辑查询将mongodb上的数据导入node.js?

时间:2014-08-29 18:43:17

标签: node.js mongodb mongoose

我想在mongodb上获取聊天记录。所以我需要在mongodb中使用逻辑查询 我有一个消息对象。消息必须,发件人和消息。

例如;在mongodb:

  

- &gt; 到: 发件人: B 消息:< / em> blabla
   - &gt; 到: B 发件人: 消息: blahblah
   - &gt; 到: C 发件人: 消息: 哈哈

我只需要A和B之间的语音限制最后20 。我怎么能在node.js中这样做?

我的代码:

function getLastMessageFor(to,sender){
  MongoClient.connect('mongodb://127.0.0.1:27017/mydb', function(err, db) {
    if (err)
      throw err;
    console.log("Connected to Database");

    db.collection('test').find($or :[ $and[{"to":to},{"sender":sender}], $and[{"to":sender},{"sender":to}]]).limit(..){})
  });
}

对我而言,我需要{(to = toName AND sender = senderName) OR (to = senderName AND sender = toName)}.last(20)这个逻辑。但我怎么能在mongodb中做到nodejs。 我需要A和B之间的演讲。

1 个答案:

答案 0 :(得分:1)

看起来你非常接近,只需要清理一下即可:

db.collection('test').find({$or: [
    {"to": to, "sender": sender},
    {"to": sender, "sender": to}
]}).limit(20).toArray(function(err, messages) {
    console.log(messages);
});

同一查询对象中的字段之间存在隐式$and