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

    前面详细说明了数组的操作,总结起来差不多就两种情况,一个条件中不带$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 } }  
    ]}} )  

   

猜你喜欢

转载自kibear.iteye.com/blog/2344747
今日推荐