Найти документы с определенным значением поля, только если другое значение поля является заданной строкой - PullRequest
0 голосов
/ 22 апреля 2019

Я использую этот пакет php для выполнения запросов - https://github.com/jenssegers/laravel-mongodb

Ситуация такова, что есть два поля, user_id и post_status среди других.Я хочу получить все документы в этой коллекции, но когда значение поля post_status равно draft, это следует получить только тогда, когда user_id является заданной строкой.Идея в том, что только зарегистрированый пользователь находит свои составленные сообщения среди других сообщений.

Мне трудно найти какое-либо решение для этой проблемы.Приложение до сих пор не запущено.Если я должен хранить данные другим способом, это тоже вариант.

1 Ответ

0 голосов
/ 22 апреля 2019

Найти документы с определенным значением поля, только если другое значение поля является заданной строкой

Вопрос, который вы формулируете, просто конвертируется в запрос и, как мы его увидим

когда другое значение поля является заданной строкой

Это означает, что у вас есть несколько наборов результатов, и вам нужно отфильтровать, когда user_id совпадает скакая-то строка.т.е. some result sets and user_id = <id>

Теперь рассмотрим первую часть предложения Find documents with a certain field value

Это означает, что вы фильтруете записи с некоторыми значениями, т.е."status" = "draft" и любой результат придет и снова захочет отфильтровать на основе user_id = <id>

Так что в итоге вы получите следующий запрос:

db.collectionName.find({"status":"draft", "user_id": "5c618615903aaa496d129d90"})

Надеюсь, что это объяснениепомочь вам, или вы можете перефразировать свой вопрос, который я постараюсь изменить с помощью ans.

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