如何查找包含兩個對象的行?示例:
$m = new Mongo();
$db = $m->mydb->user_tokens;
$cursor = $db->findOne(array('$and' => array('user_id' => $userid, 'token_id' => $tokenid)));
我不確定您是否可以在PHP中執行此操作。我有一個python後端服務器,我可以做類似這樣的事情,但也需要能夠在前端上完成。
如何查找包含兩個對象的行?示例:
$m = new Mongo();
$db = $m->mydb->user_tokens;
$cursor = $db->findOne(array('$and' => array('user_id' => $userid, 'token_id' => $tokenid)));
我不確定您是否可以在PHP中執行此操作。我有一個python後端服務器,我可以做類似這樣的事情,但也需要能夠在前端上完成。
您不需要$和限定符;只要設定你的兩個條件應該可以正常工作
在php中,我發現有用的一件事就是接受你的查詢;然後執行:
echo(json_encode($query));
這樣你可以把你的查詢,並嘗試直接在控制檯上,以確認它顯示你在想什麼它應該。
遠一點到解釋上面.. 目前,這是你在查詢什麼:
{"$and":{"user_id":"userId","token_id":"tokenId"}}
我發現了這一點做
echo(json_encode(array('$and' => array('user_id' => 'userId', 'token_id' => 'tokenId'))));
你希望被要麼做:
{"$and":[{"user_id":"userId"},{"token_id":"tokenId"}]}
or
{"user_id":"userId","token_id":"tokenId"}
創建查詢時查找的有用表單:
注意:如果你在第二個操作符上做了類似於GTE的事情,那麼你會想要使用和,並且你需要在你的用戶標識符附近添加一個數組(),使用tokenid來創建數組外觀。看到這裏:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24and – Petrogad
我已閱讀DOCS和備忘單,但實際上沒有在PHP中解釋它。當我使用兩種條件時,如果有兩份文件具有相同的條件,那麼它將顯示所有條件相同的結果。我嘗試了'$ cursor = $ db-> findOne(array('$ and'=> array('user_id'=> $ userid),array('token_id'=> $ tokenid)));'但是,頁面將不會加載.. – Bobby
'{「$和」:[{「user_id」:「userId」},{「token_id」:「tokenId」}]}'適用於JavaScript,不適用於PHP。 @Frederico – Bobby
請一個更好的問題標題不是關鍵字的轉儲。 –