我在Mongo中有一个文档,它的结构如下:
{
"_id" : ObjectId("4eea7237d0ba3a04f20008fb"),
"code" : "b2677c2809c844cc9d7e3e4ff8d95b46",
"city_id" : 4,
"datetime" : ISODate("2011-12-13T18:41:44.062Z"),
"plays" : [
{
"play_id" : 717224,
"clicks" : [ ],
"order" : 1,
"mysql_id" : 145
}
查询plays.clicks属性为非空列表的单据。我尝试过exists,但没有成功。我想像这样的东西可能行得通:
db.collection.find({plays.clicks.0: {$exists:true}})
但我相信这只会返回播放数组中第一个元素包含非空点击列表的文档。
有没有想过我该怎么做?
谢谢
发布于 2011-12-21 15:11:49
发布于 2011-12-20 23:16:49
将列表的大小另存为单独的属性(例如num_plays
)。然后可以查询num_plays
大于0
的单据
发布于 2011-12-21 00:07:35
还没有测试,但我认为您想要的查询是
{ "plays.clicks" : { "$size" : 0 } }
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24size
https://stackoverflow.com/questions/8583179
复制相似问题