如何向现有集合中的每个文档添加新字段?
我知道如何更新现有文档的字段,但不知道如何向集合中的每个文档添加新字段。在芒果壳里怎么做呢?
如何向现有集合中的每个文档添加新字段?
我知道如何更新现有文档的字段,但不知道如何向集合中的每个文档添加新字段。在芒果壳里怎么做呢?
当前回答
如果你正在使用猫鼬尝试这个,猫鼬连接后
async ()=> await Mongoose.model("collectionName").updateMany({}, {$set: {newField: value}})
其他回答
如果你正在使用猫鼬尝试这个,猫鼬连接后
async ()=> await Mongoose.model("collectionName").updateMany({}, {$set: {newField: value}})
db.collection.updateMany({}, {$set: {"fieldName": ""}})
updateMany要求每个文档都有一个匹配条件,因为我们传递的是{},它总是true。第二个参数使用$set操作符在每个文档中添加所需的字段。
皮蒙戈 3.9+
Update()现在已弃用,您应该使用replace_one()、update_one()或update_many()来代替。
在我的情况下,我使用update_many(),它解决了我的问题:
db.your_collection.update_many({}, {"$set": {"new_field": "value"}}, upsert=False, array_filters=None)
从MongoDB 3.2版开始,你可以使用updateMany():
> db.yourCollection.updateMany({}, {$set:{"someField": "someValue"}})
上面的答案不包括这种情况。我正在寻找类似的查询,但想根据条件向一些文档添加字段。
因此,我们可以使用updateMany的第一个变量仅更新少数文档中的字段。
示例:我想添加一个可空字段isDeprecated?用户类型为雇主且国家为“AAA”的所有用户。
db.users.updateMany({"userType": "Employer", "country": "AAA"}, {"$set": { "isDeprecated?": true }})
这个答案在那些我们必须找到集合然后更新的场景中也很有帮助。这可以像前面提到的那样在单个查询中完成。