欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mongodb查询嵌入式文档

程序员文章站 2022-06-14 22:50:23
...

mongodb查询嵌入式文档 db.getCollection(mobiles).ensureIndex({ params.name: 1, params.value: 1 }); db.getCollection(mobiles).insert({ _id: 1, name: ME525, brand: 摩托罗拉, params: [ {name: 待机时间, value: 200}, {name: 外观设计, value: 直板

mongodb查询嵌入式文档

db.getCollection("mobiles").ensureIndex({

"params.name": 1,

"params.value": 1

});

db.getCollection("mobiles").insert({

"_id": 1,

"name": "ME525",

"brand": "摩托罗拉",

"params": [

{"name": "待机时间", "value": 200},

{"name": "外观设计", "value": "直板"}

]

});

db.getCollection("mobiles").insert({

"_id": 2,

"name": "E7",

"brand": "诺基亚",

"params": [

{"name": "待机时间", "value": 500},

{"name": "外观设计", "value": "滑盖"}

]

});  

如果想查询待机时间大于100小时,并且外观设计是直板的手机,需要按照如下方式查询:

db.getCollection("mobiles").find({

"params": {

$all: [

{$elemMatch: {"name": "待机时间", "value": {$gt: 100}}},

{$elemMatch: {"name": "外观设计", "value": "直板"}}

]

}

});  

注:查询中用到的$all,$elemMatch等高级用法的详细介绍请参考官方文档中相关说明。