【问题标题】:Mongodb nodejs query syntax errorMongodb nodejs查询语法错误
【发布时间】:2017-07-16 12:16:03
【问题描述】:

我想要这样的查询:

此查询将在friendrequest 集合中选择一个文档,其中sender_id 等于“id1”且receiver_id 等于“id2”或sender_id 等于“id2”且receiver_id 等于“id1”

那么任何人都可以帮助我构建该查询吗?

select * fromfriendrequest where (sender_id = "id1" and receiver_id = "id2") OR (receiver_id = "id1" and sender_id = "id2") 对于mySql

错误:

friendRequests.findOne({$or:[{$and:[{sender_id:req.body._id,receiver_id:req.body._uid2}],$and:[{sender_id:req.body._uid2,receiver_id:req.body._id}]}

【问题讨论】:

  • 听起来很简单;您在尝试什么导致语法错误?
  • 实际上我无法完成查询它会像这样结束:) 我会编辑我的问题@JohnnyHK
  • 看起来您发布了您尝试过的查询,但我没有看到查询给您的错误
  • 它应该从查询返回一个结果 { result : null } @metame

标签: node.js mongodb mongodb-query


【解决方案1】:

同一个对象中的多个术语被隐式地 $and'ed,所以它只需要:

friendRequests.findOne({$or:[
    {sender_id:req.body._id, receiver_id:req.body._uid2},
    {sender_id:req.body._uid2, receiver_id:req.body._id}
]})

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2017-01-15
    • 2020-03-25
    相关资源
    最近更新 更多