MongoDB,尝试导入已使用TypeNameHandling.Objects序列化的json

时间:2016-01-15 23:53:06

标签: c# mongodb json.net

我在尝试将json导入mongodb时收到此错误。

2016-01-15T14:57:09.682-0800错误插入文件:文件不能有$  带前缀的字段名称:$ type

使用Json.Net序列化json

 var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Objects;
string output = JsonConvert.SerializeObject(o, Formatting.Indented, settings);

1 个答案:

答案 0 :(得分:0)

请参阅MongoDB documentation,其中讨论了对字段名称的限制。

Field names cannot contain dots (i.e. .) or null characters, and they must 
not start with a dollar sign (i.e. $).

如果您使用Mongo shell进行导入,则可能需要将$type更改为其他内容。

或者,您可以使用C#驱动程序导入文档,它将自动为您序列化具体类型名称。