通过分页获取集合中所有键的名称

时间:2020-07-01 11:02:39

标签: mongodb aggregation

我希望某个路径的文档集合具有唯一的键名。这是为UX元素提供 complete 的建议列表,以建议已知的键。

当我尝试这个answer

db.things.aggregate([
  {"$project":{"arrayofkeyvalue":{"$objectToArray":"$$ROOT.some.sub.item"}}},
  {"$unwind":"$arrayofkeyvalue"},
  {"$group":{"_id":null,"allkeys":{"$addToSet":"$arrayofkeyvalue.k"}}}
])

allkeys中的列表似乎以50个结果为上限。有没有办法获取 all 包含在allkey中的结果,或者理想情况下,通过它们进行分页?

以下查询似乎可以满足我的要求:

db.things.aggregate([
  {"$project":{"arrayofkeyvalue":{"$objectToArray":"$$ROOT.some.sub.item"}}},
  {"$unwind":"$arrayofkeyvalue"},
  {"$group":{"_id":"$arrayofkeyvalue.k"}}
])

我认为这给了我想要的完整性,但是效率似乎比上面的答案低很多。

Get names of all keys in the collection

0 个答案:

没有答案