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操作
)
网友评论