2017-02-25 72 views
1

我想有这样的查询:的MongoDB的NodeJS查询语法错误

这个查询将选择friendrequest集合,其中无论是SENDER_ID等于“ID1”和receiver_id等于“ID2” OR SENDER_ID等于=“ID2在一个文档“AND receiver_id等于”id1“

所以任何人都可以帮助我构建该查询?

SELECT * FROM friendrequest其中对于MySQL

(SENDER_ID = “ID1” 和receiver_id = “ID2”)OR(receiver_id = “ID1” 和SENDER_ID = “ID2”)

错误:

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}]} 
+1

听起来很简单;你在试图给你一个语法错误? – JohnnyHK

+0

其实我不能完成querry它会像这样结束:)我会编辑我的问题@ JohnnyHK –

+0

看起来你发布了你试过的查询,但我没有看到查询给你的错误 – metame

回答

1

在同一个对象中的多个项隐含$和'ed,所以它只需要是:

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

干得好我的朋友真的很感激 –