【问题标题】:how to list data types from a document in couchdb如何在couchdb中列出文档中的数据类型
【发布时间】:2015-03-05 00:31:04
【问题描述】:

是否有机会列出 couchdb 中文档的所有数据类型,如字符串、对象、整数?

我只在 Windows 机器上使用 curl。

【问题讨论】:

  • 使用纯 CURL?可以使用设计文档吗?
  • @Relaxo 你能提供更多关于为什么要列出所有数据类型的信息吗?这是一次性的操作,还是会定期重复的操作?如果定期,多久一次?你的数据集有多大?
  • @Mark 是的,我使用的是纯 CURL,没有别的。
  • @克里斯·斯诺。这是一次一次性的手术。我认为可以显示文档的数据类型,但我不知道如何做到这一点。我认为只有 curl 是不可能的。你知道如何列出我的数据类型吗?

标签: list curl types couchdb show


【解决方案1】:

如果您希望在客户端使用纯 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"
}

【讨论】:

  • 感谢您的回答马克。如何在设计文档中转换我的普通文档?如果我不想只使用 Curl,有没有办法显示数据类型? (普通文件)
  • 对不起,我之前错过了你的 cmets。我不完全确定您在转换文档方面要求什么,但是您无法使用设计文档修改文档。除了授权之外,Couch 并不关心您选择使用哪个 HTTP 客户端。
【解决方案2】:

CouchDB 使用 JSON,而 JSON 确实有一组有限的数据类型,如下所述:http://json.org/

任何更高级别的数据类型,如“DateTime”等,都是格式问题,没有标准化。

【讨论】:

  • 我知道 JSON 有字符串、数组、对象等数据类型.....但我想知道有没有什么方法可以用命令显示数据类型?
  • 请定义“数据类型”的含义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多