从shell中更新/写入到文档的数字,会变为float类型,怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从shell中更新/写入到文档的数字,会变为float类型,怎么解决相关的知识,希望对你有一定的参考价值。

1、这是因为数据库具有隐式转换功能。2、所谓隐式转换是指:数据的类型的转换通常是由编译系统自动进行的,不需要人工干预,所以被称为隐式类型转换。3、在数据导入时,如果不想把文本型数字转换为数值类型,可以提前定义数据库表是此列的数据类型为CHAR或VARCHAR类型。 参考技术A “shell中的数字都被MongoDB当作是双精度数。这意味着如果你从数据库中获得的是一个32位整数,修改文档后,将文档存回数据库的时候,这个整数也就被换成了浮点数,即便保持这个整数原封不动也会这样的。”

参考:《MongoDB权威指南》第一版

从网站表单写入谷歌文档时遇到 CORS 错误

【中文标题】从网站表单写入谷歌文档时遇到 CORS 错误【英文标题】:CORS error encountered when writing to google documents from website form 【发布时间】:2014-07-20 07:31:01 【问题描述】:

我的网站中有一个表单,应该将文本字段“电子邮件”写入谷歌电子表格。 提交表单时,它会调用一个函数,该函数将 jquery ~ v 1.4 ajax POST 发送到谷歌文档。 (我已经测试了 google 表单,它可以工作)

我遇到了 CORS 错误。

跨域请求被阻止:同源策略不允许读取 远程资源在 https://docs.google.com/forms/************************************************ *****/formResponse. 这可以通过将资源移动到同一域或 启用 CORS。

我显然无法将 google 文档移动到同一个域。 我没有服务器的配置控制权。 我不想进行任何会影响的全局 angularjs 更改 网站上使用的许多其他 ajax 和 $httpProvider。 我不想将 google 表单作为 iframe 嵌入到网站中。

我的ajax是

$scope.storeEmail = function() 
var email = $scope.fA.email;
$.ajax(type: "POST",
        async: true,
        url: 'https://docs.google.com/forms/***************************/formResponse',
        data:  field_key : email, submit : "Submit",
        success: function(resp) 
        // give success feedback and redirect page
        
        error: function(xhr, statusText, error)
          console.log(xhr);
                
;

我试过了 向 ajax 请求添加凭据和标头

withCredentials: true,
headers: 
  'Content-Type': 'application/json; charset=utf-8'

但是我不能(至少我认为我不能)设置“AccessControlAllow*”参数。

作为注释设置,凭据本身似乎并没有什么不同。 设置标头或使用 PUT 等其他类型会导致“NetworkError: 405 Method Not Allowed”响应。

我尝试使用以下配置 angularjs

App.config(['$httpProvider', function($httpProvider) 
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
  
]);

但是我是 angularjs 的新手,我不知道这是否被放入了正确的文件中,或者它是否会对网站上其他(内部)$httpProvider 使用产生连锁反应。

有人告诉我,我需要为来自我的服务器的所有 HTTP 响应添加一个“Access-Control-Allow-Origin: *”标头。但由于服务器是我的谷歌文档服务器,我认为我不能这样做。

请帮忙。

【问题讨论】:

【参考方案1】:

我知道的跨域请求的两个选项是 jsonp 和 CORS。 CORS - 正如您已经注意到的那样 - 要求托管服务器在响应中包含 CORS 标头。听起来 Google 文档网站没有。

Google 确实有跨工作表和文档的各种 jsonp 选项,所以一切都不会丢失 - https://developers.google.com/gdata/samples/spreadsheet_sample

您可以使用自己的服务器作为中间人,甚至可以使用 cors 代理等服务将您需要的标头添加到您请求的 google 内容中,而无需支付带宽费用。

http://www.corsproxy.com/ http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

【讨论】:

以上是关于从shell中更新/写入到文档的数字,会变为float类型,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程Shell从入门到精通

有没有办法找出一天中更新/写入到 solr 索引的文档

让 C++ 程序写入文件 [关闭]

Firestore 事务在单个事务中更新多个文档

每秒执行一个shell脚本)(转)

在 Rust 命令过程中写入 stdio 并从 stdout 读取