查询MongoDB集合中所有不同字段的列表

时间:2012-06-20 10:55:34

标签: php mongodb nosql

我有一个集合,其中存储所有表单数据,每个表单具有不同的结构,但是某些表单具有重叠的字段名称。我喜欢mongo,因为它在这里很容易证明,允许我根据一些小的共同因素对完全不同的数据进行排序和汇总。

现在,对于UI,我需要一个包含数据库中所有可能字段的列表,以便用户可以选择要查看的字段。除了索引之外,我似乎无法找到任何返回字段列表的mongo。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

没有提供此信息的本机MongoDB功能。 MongoDB是完全无模式的,因此您必须执行完整的数据库遍历来编译所有唯一字段名称的列表。

唯一可行的解​​决方法是使用{field: <field name>, value: <field value>}对存储所有字段,并在“字段”上运行不同的操作,或者在数据库中单独维护一个唯一字段名称列表。两者都有重大缺点。

答案 1 :(得分:0)

试试这个:

 db.collection_keys.distinct("_id")