1

如何构建一个查询,返回按嵌入式帖子 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
4

1 回答 1

1

我认为这在 MongoDB 中是不可能的。我正在阅读的所有内容都建议为数组的长度创建第二个字段并对其进行索引。

这有点旧,但可能仍然相关:

https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/zSSnj6ldfLE

此外,即使有可能,它也会很慢,因为它需要使用 javascript 而不是索引排序,因为你绝对不能索引数组长度。

于 2012-10-31T18:06:47.713 回答