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
在MongoDB项目中如何循环一个字段的值?_Mongodb_Pymongo_Projection - Fatal编程技术网

在MongoDB项目中如何循环一个字段的值?

在MongoDB项目中如何循环一个字段的值?,mongodb,pymongo,projection,Mongodb,Pymongo,Projection,问题: 我想要的是在Mongo期间循环一个字段的值 例如: 这是我的一个小样本数据 { "_id": ObjectId(1), "field1": { "key1":"value1", "key2":"value2" } }, { "_id": ObjectId(1), "field1": { "key1&q

问题:

我想要的是在Mongo期间循环一个字段的值

例如: 这是我的一个小样本数据

{
"_id": ObjectId(1),
"field1": {
   "key1":"value1",
   "key2":"value2"
} 
},
{
"_id": ObjectId(1),
"field1": {
   "key1":"value1",
   "key2":"value2",
   "key3":"value3"
}
} 
}
我的问题是这样的:

MyDocument._get_collection().aggregate([
  # some match statement
  
  "$project": { 
     'customized_data': {
        '$ifNull': ['$field1.key1', "default_value"]
     }
  }
])
所以我的查询只适用于一个键。(字段1中的键1)。 因此,我如何循环使用
“field1”
(“key1:“value1”,“key2:“value2”,“key3:“value3”)
,以更改特定条件的输出

注意:
我使用的是迄今为止最新版本的
MongoDB4.2

您可以使用聚合运算符-这将返回一个数组。然后,您可以使用一个聚合数组运算符(如$map)在数组上循环。@prasad_uu您知道是什么使您的建议不可行,我想分别比较每个值。例如
value1大于1和value2大于2等等
顺便说一句,感谢您的评论您可以使用聚合运算符-这将返回一个数组。然后,您可以使用一个聚合数组运算符(如$map)在数组上循环。@prasad_uu您知道是什么使您的建议不可行,我想分别比较每个值。例如
value1大于1和value2大于2等等
,顺便感谢您的评论