как бы вы написали этот запрос Pymongo / Mongodb, таким образом, он включает в себя строки внутри массива? (изображение включено) - PullRequest
0 голосов
/ 14 января 2019

Я хочу сделать запрос, ища все документы, в соответствующих списках которых есть, скажем, строка1, строка3, строка4

https://i.imgur.com/afbd1ci.png

Редактировать

Я добился определенного прогресса, я обнаружил, что если я сделаю этот запрос

j = USERS_COLLECTION.find({ 'havelist.0.1': card}, {'havelist':1, 'position':1,'_id':1})

это работает, но проблема в том, что мне, возможно, в конечном итоге придется искать в havelist.0.1, havelist.1.1, havelist.2.1, ..., havelist.n.1

1 Ответ

0 голосов
/ 14 января 2019

Пожалуйста, Дэвид, попробуйте это:

users = USERS_COLLECTION.find({{'havelist': {'$elemMatch': { '1': card }}}}, {'havelist':1, 'position':1,'_id':1})

В таком запросе используется оператор запроса $elemMatch, который сопоставляет документы, содержащие поле массива, по крайней мере с одним элементом, который соответствует всем указанным критериям запроса.

Здесь является официальной документацией $elemMatch оператора MongoDB

Дайте мне знать, если это сработало, в противном случае, скажите мне, что пошло не так.

...