PHP MongoDB findone $ и - PullRequest
       0

PHP MongoDB findone $ и

0 голосов
/ 07 декабря 2011

Как найти строку с двумя объектами?Пример:

    $m = new Mongo();
    $db = $m->mydb->user_tokens;
    $cursor = $db->findOne(array('$and' => array('user_id' => $userid, 'token_id' => $tokenid)));

Я не уверен, что вы даже можете сделать это в PHP.У меня есть сервер Python, который я могу сделать что-то похожее на это, но должен быть в состоянии сделать это и на внешнем интерфейсе.

1 Ответ

3 голосов
/ 07 декабря 2011

Вам не нужны $ и квалификатор;просто установка двух условий должна работать нормально.

В 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"}

Полезный лист для поиска при создании запросов:

Шпаргалка для SQL в Mongo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...