如何构建一个查询,返回按计数嵌入的post id排序的所有实体?
示例数据:
{ "_id" : ObjectId( "5090f8061e7bf28095000012" ),
"name" : "test",
"post_ids" :
[ ObjectId( "5090f8061e7bf28095000010" ) ],
[ ObjectId( "5090f8061e7bf28095000011" ) ] },
{ "_id" : ObjectId( "5090f8061e7bf28095000012" ),
"name" : "test2",
"post_ids" : [
ObjectId( "5090f8061e7bf28095000010" ),
ObjectId( "509104ec1e7bf2989b00000b" ),
ObjectId( "509105001e7bf2989b00000f" ) ] }
#my actual query returns only count:
tags_by_count = Tag.desc(:post_ids).count
答案 0 :(得分:1)
我不认为这在MongoDB中是可行的。我正在阅读的所有内容都建议为数组的长度创建第二个字段并将其编入索引。
这有点旧,但可能仍然相关:
https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/zSSnj6ldfLE
此外,即使有可能,它也会很慢,因为它需要使用javascript而不是索引排序,因为你绝对不能索引数组长度。