Mongo抛出“元素名称'名称'无效”异常 - c#

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

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()没有区别。

另外,从外壳上也可以。

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

将字符串分配给numpy.zeros数组[重复] - python

This question already has answers here: Weird behaviour initializing a numpy array of string data                                                                    (4个答案)         …

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…

T-SQL等价的正则表达式'\ b' - c#

我正在将利用regex的CLR函数转换为SQL函数。我知道SQL Server并不完全支持正则表达式,但是我只需要一种情况就可以搜索单词。搜索字段值:{"Id":1234, "Title": "The quick brown"}.NET中的正则表达式模式:'\b' + '…