Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “蒙戈投掷”;元素名称';名称';无效';例外_C#_.net_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# “蒙戈投掷”;元素名称';名称';无效';例外

C# “蒙戈投掷”;元素名称';名称';无效';例外,c#,.net,mongodb,mongodb-.net-driver,C#,.net,Mongodb,Mongodb .net Driver,我正在更新一个简单的字段 var filterDocument = new BsonDocument { { "name", "alice" } }; var newDocument = new BsonDocument { { "name", "Alice" } }; collection.UpdateOne(filterDocument, newDocument); 但是当我到达update语句时,我得到一个异常{“元素名'name'无效”。} 元素名有什么问题 更新 重新写入此: v

我正在更新一个简单的字段

var filterDocument = new BsonDocument { { "name", "alice" } };

var newDocument = new BsonDocument { { "name", "Alice" } };

collection.UpdateOne(filterDocument, newDocument);
但是当我到达update语句时,我得到一个异常
{“元素名'name'无效”。}

元素名有什么问题

更新

重新写入此:

var filterDocument = new BsonDocument { { "x", "alice" } };

var newDocument = new BsonDocument { { "y", "Alice" } };

collection.UpdateOne(filterDocument, newDocument);
抛出异常
{“元素名称'y'无效”。}

而且,
UpdateOne()
UpdateMany()
没有区别

而且,从贝壳上看也不错

> db.crud.update({name:'alice'},{name:'Alice'})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

update
相反,
updateOne
似乎需要一个update操作符

> 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
,它可以与现有文档一起替换整个匹配文档。

。。。是带有
过滤器文档
的“无效名称”还是
新文档
的“无效名称”?很好!似乎是
新文档
。我只是把它改成了
x
,得到了同样的异常,但是改成了
x
。嗯。。我想说,也许是因为它把“名字”和一些术语混在一起了,但我猜不是。。。尝试将
filterDocument
的名称更改为
“y”
,然后尝试将其值更改为
“Alice”
我确实更改了这两个,一个更改为
x
,另一个更改为
y
,并且出现了相同的错误?尝试将
filterDocument
的值更改为
“Alice”
,大写字母
“a”
。我试图找出所有可能导致第二个文档产生错误的差异。我想知道是否是这样的。替换v的编辑。我要试一试!