提问者:小点点

Mongo查询嵌入文档中的动态字段[重复]


我有以下结构:

{
   "FiledA" : "FiledAValue",
   "FiledB" : "FiledBValue",
   "FiledC" : {
          "X" : "XValue",
          "Y" : "YValue",
          "Z" : "ZValue"
   },
}
  • FiledC内容可能是动态的(x、y、z以外的其他文件)
  • 用户将发送类似{"FiledA":"12","FiledC":"333"}查询应匹配FiledA的12,如果有任何FiledC,其中一个文件包含333

如何解决查询中的FiledC问题?

提前谢谢…


共1个答案

匿名用户

您不应该使用动态字段来查询。如果不单独检查所有字段,就不可能查询这些字段。类似的方法已经在这个答案中举例说明

如果您愿意更改您的架构,我建议将其更改为:

{
   FieldC:[
      {name:"X", value:"value1"},
      {name:"Y", value:"value2"},
      {name:"Z", value:"value3"}
   ]
}

您现在可以使用以下方式查询:

db.collection.find({"FieldC.value":"testValue"});