注册

mongo数据集合属性中存在点号(.)的解决方法

当Mongo数据库中的数据集合属性中存在点号(.)时,可能会造成一些问题,比如在通过代码或者mongo shell查询该属性时,可能会出现错误提示。这种情况的处理方法如下:

  1. 使用引号包围属性名,代码示例如下:
db.collection.find({"属性名.属性名":value})

其中,属性名被引号包围,属性名中的点号(.)不再被解析为对象属性的分隔符。

示例1:查询属性名为“userInfo.name”的值为“张三”的文档。

db.users.find({"userInfo.name": "张三"})
  1. 使用$符号替代点号(.),代码示例如下:
db.collection.find({"属性名.$属性名":value})

其中,$符号位于点号(.)位置,用于表示对象属性的嵌套。

示例2:查询属性名为“address.city”的值为“北京”的文档。

db.users.find({"address.$city": "北京"})

通过以上两种方法,可以解决MongoDB数据集合属性中存在点号(.)引起的问题。