Home >Database >Mysql Tutorial >mongodb查询嵌入式文档

mongodb查询嵌入式文档

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 14:58:351017browse

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn