如何在 couchdb 中列出文档中的数据类型
how to list data types from a document in couchdb
是否有机会在 couchdb 中列出文档的所有数据类型,如字符串、对象、整数?
我只在 Windows 机器上使用 curl。
CouchDB 使用 JSON,JSON 确实有一组有限的数据类型,在此处描述:http://json.org/
任何更高级别的数据类型,如 "DateTime" 等,都是格式问题,没有标准化。
如果您希望在客户端使用纯 CURL,您将需要创建一个设计文档来回答您的查询。设计文档将具有以下映射函数:
function(doc) {
function obj_to_types( obj ){
var types = {};
Object.keys( obj ).forEach( function( k ) {
var prop = obj[k];
var type = typeof prop;
var typeValue;
if( type == "object" ){
typeValue = obj_to_types( prop );
}else{
typeValue = type;
}
types[k] =typeValue;
});
return types;
}
emit(doc.id, obj_to_types( doc ));
}
这将为每个文档生成输出,例如:
{
_id: "string",
_rev: "string",
format: {
0: "number",
1: "number",
2: "number"},
etc: "string"
}
是否有机会在 couchdb 中列出文档的所有数据类型,如字符串、对象、整数?
我只在 Windows 机器上使用 curl。
CouchDB 使用 JSON,JSON 确实有一组有限的数据类型,在此处描述:http://json.org/
任何更高级别的数据类型,如 "DateTime" 等,都是格式问题,没有标准化。
如果您希望在客户端使用纯 CURL,您将需要创建一个设计文档来回答您的查询。设计文档将具有以下映射函数:
function(doc) {
function obj_to_types( obj ){
var types = {};
Object.keys( obj ).forEach( function( k ) {
var prop = obj[k];
var type = typeof prop;
var typeValue;
if( type == "object" ){
typeValue = obj_to_types( prop );
}else{
typeValue = type;
}
types[k] =typeValue;
});
return types;
}
emit(doc.id, obj_to_types( doc ));
}
这将为每个文档生成输出,例如:
{
_id: "string",
_rev: "string",
format: {
0: "number",
1: "number",
2: "number"},
etc: "string"
}