![]() |
1
332
您可以使用MapReduce执行此操作:
然后对结果集合运行distinct以查找所有键:
|
![]() |
2
196
Kristina's answer 作为灵感,我创建了一个名为Variety的开源工具,它正是这样做的: https://github.com/variety/variety |
![]() |
3
55
可以将聚合与新的
|
![]() |
4
19
试试这个:
|
![]() |
5
15
如果目标集合不太大,可以在mongo shell client下尝试:
|
![]() |
6
10
用法:
|
![]() |
7
9
使用python。返回集合中所有顶级键的集合:
|
![]() |
8
8
以下是在Python中工作的示例: 此示例以内联方式返回结果。
|
![]() |
9
6
这就是工作 example |
![]() |
10
3
钥匙 在集合名称中: 收藏名称 |
![]() |
11
2
这对我很有用:
|
![]() |
12
1
得到所有键的列表
|
![]() |
13
1
我想最好的办法就是
here
在Mongod3.4.4+中,但不使用
然后是
现在,如果我们有一个嵌套的文档,并希望获得密钥,这是可行的。为了简单起见,让我们考虑一个带有简单嵌入文档的文档,它如下所示:
以下管道生成所有密钥(field1、field2、field3、field4)。
只要稍加努力,我们就可以得到数组字段中元素也是对象的所有子文档的键。 |
![]() |
14
0
我试着用nodejs来写,最后想到:
读取新创建的集合“allFieldNames”后,将其删除。
|
![]() |
15
0
根据蒙古数据库
documentation
,一个组合
和 indexes 集合操作将返回给定键或索引的所有可能值: 因此,在给定的方法中,可以使用如下方法,以便查询集合中所有已注册的索引,并返回,例如,具有索引的对象作为键(此示例对NodeJS使用async/await,但显然可以使用任何其他异步方法):
因此,使用
请注意,这使用了NodeJS驱动程序本机的方法。正如其他一些答案所暗示的,还有其他方法,例如聚合框架。我个人认为这种方法更灵活,因为您可以轻松地创建和微调如何返回结果。显然,这只处理顶级属性,而不是嵌套属性。
此外,为了保证所有文档都有表示,如果有二级索引(主索引除外),这些索引应该设置为
|
![]() |
16
0
可能有点离题,但可以递归地打印对象的所有键/字段:
|
![]() |
17
0
我们可以通过使用mongo js文件来实现这一点。在您的 getCollectionName.js 在Linux控制台中文件并运行js文件,如下所示:
谢谢@ackuser |
![]() |
18
0
根据@James Cropcho的答案,我找到了一个非常容易使用的线索。它是一个二进制工具,这正是我想要的: mongoeye 使用此工具从命令行导出我的架构大约需要2分钟。 |
![]() |
19
-1
我把Carlos LM的解决方案扩展了一点,所以更详细。 架构示例:
运行:
输出
|
![]() |
20
-3
我有一个更简单的工作。。。 您可以做的是在将数据/文档插入主集合“things”时,必须在1个单独的集合中插入属性,例如“things\u attributes”。
因此,things\u属性只有一个惟一密钥文档,您可以在任何需要时使用findOne()轻松获取该文档 |
![]() |
Hayato · 如何检查我是如何安装MongoDB的 2 年前 |
![]() |
Valeri · 如何仅获取布尔值数组中没有“false”的文档? 2 年前 |
![]() |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
![]() |
danilonet · MongoDb。NET-ObjectId序列化 2 年前 |
![]() |
Windy · MongoDB-查询计算和分组多个项目 2 年前 |
![]() |
Mike Kharkov · 无法从数据库中检索多个值 2 年前 |