MongoDB为特定的id,查询返回数组,即使size为0

时间:2014-01-13 11:19:07

标签: mongodb

我的收藏结构是这样的

{id:123, name:One, photos:[{id:"Test1",name:"Image One"},{"id":Test2,name:"Image Two"}]}
{id:124, name:One, photos:[]}

我的主要目标是仅在数组大小大于0时才基于idname获取数组的第一个元素。

但即使照片数组为空,所述查询也会返回该对象:

collection.find({"id":"124"},{"photos":{"$slice":[0,1]}})

我也尝试了where子句,但结果仍然是相同的

collection.find({"name":"album test"},{"photos":{"$slice":[0,1]},"$where":"photos.length > 0"})

有没有更好的方法来检查或查询对象?

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式执行此操作:

db.collection.find({id:124, "photos.0" : {$exists:true}},{"photos":{"$slice":[0,1]}})