gpt4 book ai didi

MongoDB:在带有嵌套文档的嵌套文档中设置带有嵌套文档的嵌套数组

转载 作者:可可西里 更新时间:2023-11-01 10:43:42 25 4
gpt4 key购买 nike

我想在文档中的文档中的所有数组中的所有文档中 $set 一个字段。基本上,我想这样做

{$set : {'documentname.*anyandallstrings*.*anyandallnum*.fieldname' : value}}

这里是文档架构的示例

{
"_id" : "abc123",
"documenttoset" : {
"arrayname" : [
{
"fieldname" : "fieldvalue"
//i want to add fields here,
},
{
"fieldname2" : "fieldvalue2",
"fieldname3" : "fieldvalue3"
//here,
}
],
"arrayname2" : [
{
"fieldname4" : "fieldvalue4",
"fieldname5" : "fieldvalue5",
"fieldname6" : "fieldvalue6",
//and here.

}
]
},
}

它应该将有问题的字段添加到这些嵌套文档中,并且如果有更多文档和更多数组,则必须是可扩展的。

我没有设计架构。

这是怎么做到的?我不确定这是否可能。

最佳答案

完成此操作的唯一方法是遍历文档并单独更新每个字段。

import pymongo

c = pymongo.mongo_client.MongoClient(host='localhost')

db = c.local

cursor = db.test.find()

for q in cursor:
dic = q
for f in dic:
field = dic[f]
if(f != '_id'):
for a in field:
array = field[a]

for d in array:
d['newfield'] = 'value'

完成后,您只需找到有问题的文档并更新它。

db.test.update({'_id':'abc123'}, dic)

您必须使用驱动程序(显然)。我喜欢使用 python 和 pymongo,但那里有大量的驱动程序。

如果这是一个数据库管理工作,我建议在 python shell 中使用 pymongo。

希望对您有所帮助!

关于MongoDB:在带有嵌套文档的嵌套文档中设置带有嵌套文档的嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24958385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com