我在mongoDB中插入的文档格式如下:
{'Name':{'Surname':{'JON':{'AGE':10}}}}
在上面的示例中,我想构建一个查询来忽略'JON'但是获取所有用户的AGE值。
我试过了:
db.names.find({'Name.Surname':{$regex:'.'}}) but didn't work....
我正在寻找的是:
db.names.find({'Name.Surname.<matchanything>.AGE':{$gt:0}})
答案 0 :(得分:2)
我认为你的文档方案会让你难以查询,即使MongoDB以这种方式支持通配符匹配(目前还没有)。基本上它会归结为进行大量的表扫描。
是否有理由将Age作为姓氏的财产?
另一种方法是使文档结构更符合
{
"_id" : ObjectId(),
"Name" : "something",
"Surname" : "JON",
"Age" : 10
}
哪种查询会更方便:
db.user.find({"Name":"something"})
db.user.find({"Age":{"$gte":5}})