mongo 查询仅返回匹配的数组对象和外部属性

举例如下:
假使表中的数据是这样的:
{

"_id" : NumberLong(1181675746),
"shard_qty" : 4,
"goods_qty" : 0,
"shop_qty" : 0,
"favorite_qty" : 4,
"favorite_shards" : [ 
  {
        "sid" : NumberLong(580),
        "favorite_dt" : ISODate("2015-06-26T12:13:06.405+08:00"),
        "is_attention" : true
    }, 
  {
        "sid" : NumberLong(579),
        "favorite_dt" : ISODate("2015-06-26T12:13:06.405+08:00"),
        "is_attention" : true
    }, 
    {
        "sid" : NumberLong(578),
        "favorite_dt" : ISODate("2015-06-26T12:13:06.405+08:00"),
        "is_attention" : true
    }, 
    {
        "sid" : NumberLong(577),
        "favorite_dt" : ISODate("2015-06-26T13:20:48.449+08:00"),
        "is_attention" : true
    }
]

}
我现在要查询favorate.shards=580的数组对象,希望得到以下结果:
{

"_id" : NumberLong(1181675746),
"shard_qty" : 4,
"goods_qty" : 0,
"shop_qty" : 0,
"favorite_qty" : 4,
"favorite_shards" : [ 
  {
        "sid" : NumberLong(580),
        "favorite_dt" : ISODate("2015-06-26T12:13:06.405+08:00"),
        "is_attention" : true
    }
]

}

我下午试了很多办法——
favorite_shards.sid=580+favorite_shards.$:1,
以及$eleMatch,得到的结果都是这样:
{

"_id" : NumberLong(1181675746),
"favorite_shards" : [ 
  {
        "sid" : NumberLong(580),
        "favorite_dt" : ISODate("2015-06-26T12:13:06.405+08:00"),
        "is_attention" : true
    }
]

},
数组外围的属性goods_qty等,除了id都不剩下了。不知道是否有办法除了保证返回唯一数组中匹配的对象,同事外围的属性不丢失??

阅读 2.6k
1 个回答

已经解决了,condition里需要指定查询的字段,否则不予显示

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题