如下结构的文档, 需要根据搜索条件,匹配property下的值,只要匹配到一个,就算结果集
如:db.coll.find({"property":{"test1_field_1":/a/}}) ,能匹配到,
但是是需要property 下所有的字段都去匹配。而字段名是未知的,
{
"_id" : ObjectId("5aaf36743e178f2e540cb6e9"),
"property" : {
"test1_field_1" : "acd",
"test1_field_2" : "3",
"xxx_field" : "hell",
"field_unknown" : "hello world"
}
}
如果改变文档结构是一种可接受的解决方案的话, 可以考虑把 property 改为数组:
这样就可以用
property.key
为字段进行查询了:mongo 同时也支持对数组进行索引:
官方文档 - multikey indexes