gpt4 book ai didi

arrays - 如何使用 mongo shell 获取 MongoDB 集合中的所有字段名称,包括嵌套字段名称?

转载 作者:行者123 更新时间:2023-12-05 06:14:09 27 4
gpt4 key购买 nike

我正在寻找一种方法来检索 MongoDB 集合中所有可能的字段,因为在所有文档中,并非每个文档都具有相同的字段,以便为我的任务中的所有可能情况做好准备就在眼前。

我找到了 this useful question/answer能够检索所有字段。答案很有用,但正如那里的评论所述,也可以获取所有嵌套的字段名称吗?仅此问题就需要另一个问题,因此我想知道该怎么做。

我的意思是:

total: 15861
ref_code: "0FMjZj"
settings: Object
pa_rejected: "1"
pa_redeem: "1"
new: "1"

在这个简化的示例中,使用 Mongo CLI 和引用答案中共享的解决方案,我得到:

[
"total",
"ref_code",
"settings"
]

有没有办法同时以某种方式获得 pa_rejectedpa_redeemnew

最佳答案

将 map 函数递归地应用于文档:

db['foo'].deleteMany({})
db['foo'].insert({a:{foo:{bar:{zoom:42}}},b:'c',d:'e',x:[]})

mr = db.runCommand({
"mapreduce" : "foo",
"map" : function() {
var f = function() {
for (var key in this) {
if (this.hasOwnProperty(key)) {
emit(key, null)
if (typeof this[key] == 'object') {
f.call(this[key])
}
}
}
}
f.call(this);
},
"reduce" : function(key, stuff) { return null; },
"out": "myCollectionName" + "_keys"
})


print(db[mr.result].distinct("_id"))

关于arrays - 如何使用 mongo shell 获取 MongoDB 集合中的所有字段名称,包括嵌套字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63004970/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com