字段';s mongodb中集合的数据类型
如何在mongodb中获取集合的字段信息 我要找的信息是字段';s mongodb中集合的数据类型,mongodb,mongoose,Mongodb,Mongoose,如何在mongodb中获取集合的字段信息 我要找的信息是 字段名 数据类型 您需要遍历所有文档,找出使用的名称以及每个特定字段使用的类型。MongoDB没有模式,因此没有捷径获取它。还要注意,每个字段的值可以有完全不同的数据类型,这也是MongoDB的另一个优势 要了解一些统计信息,例如字段名,以下脚本可以提供帮助: mr = db.runCommand({ "mapreduce" : "things", "map" : function() { for (var key in
- 字段名
- 数据类型
mr = db.runCommand({
"mapreduce" : "things",
"map" : function() {
for (var key in this) { emit(key, null); }
},
"reduce" : function(key, stuff) { return null; },
"out": "things" + "_keys"
})
然后在生成的集合上运行distinct以查找所有键:
db[mr.result].distinct("_id");
但是,没有办法将字段类型也包含在这样的Map/Reduce作业中。您无法确定集合的架构。E集合中的每个对象可能具有不同的模式,您应该注意这一点
,在文章中,您可以找到如何使用java编程语言检索对象的模式;然而,就我所知,除了尝试强制转换对象(t)之外,没有其他方法可以检索数据类型 MongoDB支持动态模式,并且在MongoDB 2.4中没有用于模式内省或分析的内置功能 然而。。可以通过在文档样本或整个集合中使用Map/Reduce进行检查来推断模式 有一些开源工具将此方法打包到一个有用的界面中,例如:
- -使用
prototype扩展collection.schema()
shellmongo
- -作为独立脚本运行
schema.js
的方法,并将其包含在我的启动文件中,这样它就可以在我的mongo
shell会话中使用
默认情况下,
schema.js
分析集合中最多50个文档,并以内联方式返回结果。有一个limit
选项可以检查集合中的更多(甚至所有)文档,它支持Map/Reduce,因此可以选择将结果保存或与输出集合合并。如果文档有结构,代码需要更复杂。在无架构的数据库中,您想做什么?