Mongodb高级查询

1. 判断是否是空的数组

{"prop.position.0":{$exists:true}}

2. 查询时array只返回满足条件的元素

db.article.aggregate({$match:{"_id":ObjectId("592533042de6394524d9d92c")}},         
{$project:{_id:1,chart:1}},       //排除你不想要的列,都想要的话就排除个不存在的列名
{$unwind:"$chart"},      //展开chart数组
{$match:{'chart.title':"1"}},//chart.title=1.这里不能放到前面的match中,因为这是pipeline,放到前面再unwind的话还是2条chart
{$group:{_id:"$_id",chart:{$push:"$chart"}}}//把想要的列放进来,task做push操作
 )

unwind把嵌套的数组展开

  • Mongodb高级查询_第1张图片

你可能感兴趣的:(Mongodb高级查询)