Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 您将如何编写这个pymongo/mongodb查询,在数组中包含字符串?(包括图片)_Python_Mongodb_Pymongo - Fatal编程技术网

Python 您将如何编写这个pymongo/mongodb查询,在数组中包含字符串?(包括图片)

Python 您将如何编写这个pymongo/mongodb查询,在数组中包含字符串?(包括图片),python,mongodb,pymongo,Python,Mongodb,Pymongo,我想做一个查询,查找在各自的haveList中包含string1、string3、string4的所有文档 编辑 我取得了一些进展,我发现如果我提出这个问题 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上搜索。大卫,请

我想做一个查询,查找在各自的haveList中包含string1、string3、string4的所有文档

编辑 我取得了一些进展,我发现如果我提出这个问题

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上搜索。大卫,请尝试以下方法:

users = USERS_COLLECTION.find({{'havelist': {'$elemMatch': { '1': card }}}}, {'havelist':1, 'position':1,'_id':1})
此类查询使用
$elemMatch
查询运算符,该运算符将包含数组字段的文档与至少一个匹配所有指定查询条件的元素相匹配

是MongoDB运营商的官方文件


让我知道这是否有效,否则,告诉我哪里出了问题。

好的,让我看看我是否理解你的问题,因为它有点不清楚。如果第二个元素(索引1处的元素)与havelist中的任何元素或havelist中的所有元素的给定卡片匹配,是否希望返回文档??。分裂问题。首先,您是否只检查第二个元素?其次,如果havelist中至少有一个元素满足条件(等于卡片),或者havelist中的所有元素都符合条件,则应返回文档?请仔细解释,里面的其他元素也会被检查,只有当这些字段中的一些(我认为4或5)与给定参数(同时)匹配时,才应该返回文档,但我认为如果您告诉我如何执行这种递归(?)搜索,即havelist.0.1、havelist.1.1、havelist.2.1、…、havelist.n.1,我想我明白了。编辑:如果第二个元素与列表中任何元素的给定卡片匹配,我希望返回文档