假设我有很多(> 20k)文档,如下所示
{
"id": 1,
"data": "1"
}
{
"id": 2,
"data": "2"
}
...
我希望将它们更新为
{
"id": 1,
"data": "3"
}
{
"id": 2,
"data": "4"
}
...
由于文件数量庞大,在合理的时间内进行逐个更新根本不可行。因此,我觉得必须能够立即批量更新所有文档,但我不确定如何正确地执行此操作。试图搜索谷歌没有找到任何有用的答案。
编辑:我知道updateMany()存在,我的问题是我不知道如何编写适当的过滤器。例如:
{
"id": 1,
"data": "1"
}
{
"id": 2,
"data": "2"
}
我只希望文档标识1
将data
设置为"3"
,并且只需将文档标识2
设置为data
设置为"4"
}。从阅读updateMany()文档,我不知道如何做到这一点。
编辑2:
问题中的对象是Discord guild entities。剥离一些额外数据后,插入的内容看起来像
{
"_id" : ObjectId("5a80a877a2b51be70f2c3e72"),
"id" : NumberLong("123123123123123123"),
"afk_channel_id" : null,
"afk_timeout" : 300,
"application_id" : null,
"default_message_notifications" : 0,
"explicit_content_filter" : 0,
"features" : [ ],
"icon" : null,
"joined_at" : "<timestamp>",
"large" : false,
"member_count" : 2,
"mfa_level" : 0,
"name" : "Test",
"owner_id" : NumberLong("123123123123123123"),
"region" : "us-east",
"splash" : null,
"system_channel_id" : NumberLong("123123123123123123"),
"unavailable" : false,
"verification_level" : 0
}
因此,我能够在唯一上查询的最多是id
字段。