2017-02-25 69 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

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