Heim >Datenbank >MySQL-Tutorial >mongodb查询嵌入式文档

mongodb查询嵌入式文档

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 14:58:351023Durchsuche

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等高级用法的详细介绍请参考官方文档中相关说明。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn