【问题标题】:Error in storing property name as url in MongoDB在 MongoDB 中将属性名称存储为 url 时出错
【发布时间】:2021-02-06 14:56:12
【问题描述】:

如何将以下文档存储在 mongo 中,插入时出现以下错误。

文档:

{
    "data": {
        "http://test.abc.com/xyz/xyz/displayname": "my Name"
    }
}

错误:

java.lang.IllegalArgumentException: Invalid BSON field name http://test.abc.com/xyz/xyz/displayname
    at org.bson.AbstractBsonWriter.writeName(AbstractBsonWriter.java:494)
    at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:188)
    at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:172)
    at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:189)
    at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:131)
    at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:45)
    at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)

【问题讨论】:

    标签: java mongodb bson


    【解决方案1】:

    Restrictions on field names

    字段名称不能包含空字符。

    顶级字段名称不能以美元符号 ($) 字符开头。

    否则,从 MongoDB 3.6 开始,服务器允许存储包含点(即 .)和美元符号(即 $)的字段名称。

    相反,您可以存储两个字段。一个用于 URI,另一个用于名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      相关资源
      最近更新 更多