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

mongodb基础知识-内嵌数组总结  

程序员文章站 2022-03-20 17:21:53
...

    前面详细说明了数组的操作,总结起来差不多就两种情况,一个条件中不带$elemMatch,一种是条件中带$elemMatch。常用的查询应该是带$elemMatch,这样是要求数组中有元素满足所有条件。

   1. 不带$elemMatch,结构大概是:

    {字段: 值}  {字段: {$gt: 值}} 对应基本数据类型的数组

    {字段.字段: 值}  {字段.字段: {$gt: 值}} 对应文档类型的数组

 

 

    2. 带$elemMatch , 结构大概是:

    {字段: {$elemMatch: 值} }   {字段: {$elemMatch: {$gt: 值}} }  对应基本数据类型的数组

    {字段: {$elemMatch : {字段: 值}}}   {字段: {$elemMatch : {字段: {$gt: 值}}}}  对应文档类型的数组

 

    3. 带$elemMatch 并且要有多个满足

// 这两种等价
db.users.find( {"$and" : [  
        { finished: { $elemMatch: { $lte: 70 } } },  
        { finished: { $elemMatch: { $gt: 14 } } }  
    ]} )  

db.users.find( {"finished" : { "$all": [  
        { $elemMatch: { $lte: 70 } } ,  
        { $elemMatch: { $gt: 14 } }  
    ]} } ) 

// 这两种等价
db.users.find( {"$and" : [  
        { points: { $elemMatch: { points: { $lte: 70}, bonus: 20 } } },  
        { points: { $elemMatch: { points: { $gt: 80}, bonus: 8 } } }  
    ]} )  

db.users.find( { "points" : {"$all" : [  
        { $elemMatch: { points: { $lte: 70}, bonus: 20 } },  
        { $elemMatch: { points: { $gt: 80}, bonus: 8 } }  
    ]}} )