Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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中,如何将一个mongo文档中的值复制到另一个mongo文档中的嵌套字段中?_Python_Mongodb - Fatal编程技术网

在python中,如何将一个mongo文档中的值复制到另一个mongo文档中的嵌套字段中?

在python中,如何将一个mongo文档中的值复制到另一个mongo文档中的嵌套字段中?,python,mongodb,Python,Mongodb,我在mongo数据库中有两个集合。目前,我在collection2的文档中有一个collection1的ID文档。我想将一些值从Collection1复制到Collection2中相关文档中的嵌套字段(dataFromCollection1)。我正在寻求帮助,因为在python中找不到将值从mongo基字段传递到变量的解决方案 Collection1: { "_id" : ObjectId("583d498214f89c3f08b10e2d"), "

我在mongo数据库中有两个集合。目前,我在collection2的文档中有一个collection1的ID文档。我想将一些值从Collection1复制到Collection2中相关文档中的嵌套字段(dataFromCollection1)。我正在寻求帮助,因为在python中找不到将值从mongo基字段传递到变量的解决方案

 Collection1:
    { 
        "_id" : ObjectId("583d498214f89c3f08b10e2d"), 
        "name" : "Name", 
        "gender" : "men", 
        "secondName" : "", 
        "testData" : [    ], 
        "numberOf" : NumberInt(0), 
        "place" : "", 
        "surname" : "Surname", 
        "field1" : "eggs", 
        "field2" : "hamm", 
        "field3" : "foo", 
        "field4" : "bar" 
    }


Collection2:
{ 
    "_id" : ObjectId("58b028e26900ed21d5153a36"), 
    "collection1" : ObjectId("583d498214f89c3f08b10e2d")
    "fieldCol2_1" : "123", 
    "fieldCol2_2" : "332", 
    "fieldCol2_3" : "133",
    "dataFromCollection1" : {
        "name" : " ", 
        "surname" : " ", 
        "field1" : " ", 
        "field2" : " ", 
        "field3" : " ", 
        "field4" : " "
    }
}

我认为您应该在pymongo包中使用聚合函数,在聚合中,您可以使用$lookup来匹配键值对和项目,以投影所需字段。这个问题已经被提出,因此这可能会对您有所帮助。
然后,您可以在聚合中使用$out函数来创建您感兴趣的新更新集合,也可以在pymongo中使用更新来更新现有集合。

我认为您应该在pymongo包中使用聚合函数,总之,您可以使用$lookup来匹配键值对和项目,以投影所需的字段。这个问题已经被问过了,所以这可能会对您有所帮助。
然后,您可以在聚合中使用$out函数来创建您感兴趣的新更新集合,也可以在pymongo中使用更新来更新现有集合。

您可以从第一个集合中读取数据,并在第二个集合中使用更新操作来保存第二个集合中的数据。请记住在更新操作中使用$set属性。否则现有数据将丢失。您当前使用哪个python库连接MongoDB?@LakmalVithanage我只需要Collection1中20个字段中的5-6个字段。我可以选择哪些字段将添加到collection2吗?您能发送一些示例吗?@jarryjafery我使用pymongo@KrzysztofKozłowski,是的,您可以。您可以从第一个集合中读取数据,并在第二个集合中使用更新操作将数据保存在第二个集合中。请记住在更新操作中使用$set属性。否则现有数据将丢失。您当前使用哪个python库连接MongoDB?@LakmalVithanage我只需要Collection1中20个字段中的5-6个字段。我可以选择哪些字段将添加到collection2吗?你能举一些例子吗?@jarryjafery我用的是pymongo@KrzysztofKozłowski,是的,你能。