MongoDb db.Collection.update() 删除了我的文档
MongoDb db.Collection.update() deleted my document
我在 mongodb
数据库上 运行 一个 update
语句,它删除了我的文档!我做错了什么?
这是更新语句:
db.Question.update( {Name: "IsSomeCompany"}, {ButtonValues: [0, 1, 2] } )
我正在使用 Robomongo
,回复是 Updated 1 record(s) in 22ms
,但是当我检查数据库时,记录不见了。我在这里错过了什么?
我使用这种语法来更新多个文档。
db.getCollection('YourDocument').update(
{ "matchingField" : "matchingValue"},
{ "$set": { "field": "value" } },
{ "multi": true }
)
如果您只想更新一个字段,则应使用 $set 运算符。
但是,如果您想要替换文档,我对 Mongo 和 Meteor 也有同样的问题。我在 Mongo 文档中发现,要替换文档,您不需要使用 $ 运算符,只需传递 field/value 对:
The following operation passes an document that contains only field and value pairs. The document completely replaces the original document except for the _id field.
db.books.update({ item: "XYZ123" },
{
item: "XYZ123",
stock: 10,
info: { publisher: "2255", pages: 150 },
tags: [ "baking", "cooking" ]
})
https://docs.mongodb.com/manual/reference/method/db.collection.update/#example-update-replace-fields
但是在 Robomongo 和 Meteor 方法中都删除了文档。
我找到的唯一方法是使用 $set 运算符并替换每个字段。但是这会尝试更新 mongo '_id',所以我认为这只是一个解决方法...
db.books.update({ item: "XYZ123" },
{
$set: {
item: "XYZ123",
stock: 10,
info: { publisher: "2255", pages: 150 },
tags: [ "baking", "cooking" ]
}
})
我在这里错过了什么? :/
我在 mongodb
数据库上 运行 一个 update
语句,它删除了我的文档!我做错了什么?
这是更新语句:
db.Question.update( {Name: "IsSomeCompany"}, {ButtonValues: [0, 1, 2] } )
我正在使用 Robomongo
,回复是 Updated 1 record(s) in 22ms
,但是当我检查数据库时,记录不见了。我在这里错过了什么?
我使用这种语法来更新多个文档。
db.getCollection('YourDocument').update(
{ "matchingField" : "matchingValue"},
{ "$set": { "field": "value" } },
{ "multi": true }
)
如果您只想更新一个字段,则应使用 $set 运算符。 但是,如果您想要替换文档,我对 Mongo 和 Meteor 也有同样的问题。我在 Mongo 文档中发现,要替换文档,您不需要使用 $ 运算符,只需传递 field/value 对:
The following operation passes an document that contains only field and value pairs. The document completely replaces the original document except for the _id field.
db.books.update({ item: "XYZ123" },
{
item: "XYZ123",
stock: 10,
info: { publisher: "2255", pages: 150 },
tags: [ "baking", "cooking" ]
})
https://docs.mongodb.com/manual/reference/method/db.collection.update/#example-update-replace-fields
但是在 Robomongo 和 Meteor 方法中都删除了文档。
我找到的唯一方法是使用 $set 运算符并替换每个字段。但是这会尝试更新 mongo '_id',所以我认为这只是一个解决方法...
db.books.update({ item: "XYZ123" },
{
$set: {
item: "XYZ123",
stock: 10,
info: { publisher: "2255", pages: 150 },
tags: [ "baking", "cooking" ]
}
})
我在这里错过了什么? :/