在MongoDB中,字段中的点号 "." 需要谨慎使用。因为在搜索时,点号代表着内涵字段
例如:
db.testdb.insert({"name":"lisi","T1.field1":"zhangsan"})
在保存在MongoDB后还是以字符串“T1.field1”保存。
但是在条件搜索的时候却会出现不能根据内含字段进行搜索
db.testdb.find({"T1.field1":"zhangsan"})
结果是0条
因为MongoDB根据查询条件去搜索时,会认为是查找T1字段的内含字段为field1,值为zhangsan的Document。
也就是这种格式:
{
"name":"lisi",
"T1":
{
"field1":"zhangsan"
}
}
因此在定义字段的时候需要注意点号的问题。
如果真的会有点号的情况,我建议在插入之前将数据转换为如上内含字段的方式后再进行存储。方便日后的搜索。