Mongo 抛出“元素名称 'name' 无效”异常
Mongo throwing "Element name 'name' is not valid' exception
我正在更新一个简单的字段。
var filterDocument = new BsonDocument { { "name", "alice" } };
var newDocument = new BsonDocument { { "name", "Alice" } };
collection.UpdateOne(filterDocument, newDocument);
但是当我到达更新语句时出现异常 {"Element name 'name' is not valid'."}
那个元素名称有什么问题?
更新
重写为:
var filterDocument = new BsonDocument { { "x", "alice" } };
var newDocument = new BsonDocument { { "y", "Alice" } };
collection.UpdateOne(filterDocument, newDocument);
抛出异常{"Element name 'y' is not valid'."}
此外,UpdateOne()
或 UpdateMany()
没有区别。
此外,从 shell 开始就可以了。
> db.crud.update({name:'alice'},{name:'Alice'})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
与update
相反,updateOne
似乎需要更新运算符;
> db.test.updateOne({name:'alice'},{name:'Alice'})
2016-02-16T19:04:07.689+0000 E QUERY [thread1] Error: the update operation document must contain atomic operators
> db.test.updateOne({name:'alice'},{$set: {name:'Alice'}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
...这意味着您的文档应该看起来像;
var newDocument =
new BsonDocument { { "$set", new BsonDocument {"name", "Alice" } } };
...或者如果您真的想要替换整个文档,请使用 replaceOne
,它应该可以与您现有的文档一起替换整个匹配的文档。
我正在更新一个简单的字段。
var filterDocument = new BsonDocument { { "name", "alice" } };
var newDocument = new BsonDocument { { "name", "Alice" } };
collection.UpdateOne(filterDocument, newDocument);
但是当我到达更新语句时出现异常 {"Element name 'name' is not valid'."}
那个元素名称有什么问题?
更新
重写为:
var filterDocument = new BsonDocument { { "x", "alice" } };
var newDocument = new BsonDocument { { "y", "Alice" } };
collection.UpdateOne(filterDocument, newDocument);
抛出异常{"Element name 'y' is not valid'."}
此外,UpdateOne()
或 UpdateMany()
没有区别。
此外,从 shell 开始就可以了。
> db.crud.update({name:'alice'},{name:'Alice'})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
与update
相反,updateOne
似乎需要更新运算符;
> db.test.updateOne({name:'alice'},{name:'Alice'})
2016-02-16T19:04:07.689+0000 E QUERY [thread1] Error: the update operation document must contain atomic operators
> db.test.updateOne({name:'alice'},{$set: {name:'Alice'}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
...这意味着您的文档应该看起来像;
var newDocument =
new BsonDocument { { "$set", new BsonDocument {"name", "Alice" } } };
...或者如果您真的想要替换整个文档,请使用 replaceOne
,它应该可以与您现有的文档一起替换整个匹配的文档。