0

我在 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}})
4

1 回答 1

2

我认为您拥有的文档方案将使您难以查询,即使 MongoDB 以这种方式支持通配符匹配(目前不支持)。基本上它会归结为进行大量的表扫描。

是否有理由将年龄作为姓氏的属性?

另一种方法是使文档结构更符合

{
    "_id" : ObjectId(),
    "Name" : "something",
    "Surname" : "JON",
    "Age" : 10
}

这对于查询更方便:

db.user.find({"Name":"something"})
db.user.find({"Age":{"$gte":5}})
于 2012-08-01T01:43:20.313 回答