我的MongoDB收藏中有一些文档,它们看起来像这样:
number: first
value: 1
number: two
value: 2
number: three
value: 3
我想更新集合中的所有文档,以便将每个文档的value
字段更改为随机数,如下所示:
number: first
value: 4747
number: two
value: 1024
number: three
value: 102
我尝试了以下代码:
cursor = db.mycol.find()
for record in cursor:
record = db.mycol.raplace_many({}, {"value": random.randrange(10000)})
问题在于,它不是用新的随机值更新每个文档,而是用相同的随机值更新所有文档,如下所示:
number: first
value: 1024
number: two
value: 1024
number: three
value: 1024
为什么会这样?我尝试了同样的方法,但是使用了update_many
而不是replace,但是输出是相同的。感谢您的每一个建议
另一方面,如果我尝试使用insert_one
插入值,则输出将是预期的,因此每个字段将具有不同的随机值
以下代码可以实现此目的:
更新前:
更新后:
相关问题 更多 >
编程相关推荐