MongoDB csv文件导入导出
1.导出到csv文件:

2.从csv导入:

数据经过csv导出导入,有一个非常隐蔽的问题,编写代码时需要注意:
先导入一条数据:

其中Price是double类型:

然后我把该条记录导出到Demo.csv,并且从数据库删除该条记录,然后再从Demo.csv导入该条记录:

再来看此时数据库中该条记录:

发现Price数值原本double型66.000000自动变成了Int32型66。
这时问题出现了,你如果还是用bson_iter_double(&iter)去取Price字段时,就会取不到值:

只有用bson_iter_int32(&iter)才能取到值:

所以得到结论:
当需要取数据中的某个float(或double)类型的字段时,代码可以如下编写:

避免:数据经过 导出至csv再从csv导入的过程之后,字段值取不到的问题。
总觉的上面的方法有点膈应,所以继续摸索,发现了2个新的API:


测试代码编写如下:


本以为bson_iter_value(&iter)->value.v_double 就可以解决问题,可断点发现如果是字段是Int32型,v_double的值并不能满足要求。
如果要用这两个API,还得自己封装一层,把type和value对应起来。
如:字段是BSON_TYPE_INT32就取value.v_int32的值; 是BSON_TYPE_DOUBLE就取value.v_double的值。
仍然觉得上述方法很不爽,总是想寻求一种不依赖字段本身数据类型的取值方法。
终于,Json完美满足了我的需求,测试代码如下:

上述Json解析使用的是Jsoncpp,要使用Jsoncpp,得做如下几步的配置:
1.首先从http://sourceforge.net/projects/jsoncpp/下载,压缩包大约105k。
2.解压之后,将include文件夹、src下的lib_json文件夹,拷贝至你的项目中。

3.项目属性->C/C++->常规->附加包含目录 添加3个路径:①..\include、 ②..\include\json、 ③..\lib_json。
4.项目中添加lib_json下的3个cpp文件:①json_reader.cpp ②json_value.cpp ③json_writer.cpp。并右键这三cpp文件,属性->C/C++->预编译头->创建/使用预编译头->不使用预编译头。否则编译报错。
5.项目cpp中#include "json.h"。
这样就可以愉快的使用Jsoncpp解析Json了。
MongoDB csv文件导入导出的更多相关文章
- CSV文件导入导出MySQL
使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...
- MySql csv文件导入导出
一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 ...
- 【转】Java操作CSV文件导入导出
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...
- mongodb csv 文件导入数据库,删除特定字段
1. 导入数据库 mongoimport -h host_ip -p port -d db_name -c collection_name --fields name1,name2,name3,nam ...
- 将csv格式的数据文件导入/导出数据库+添加新的字段
最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题. 因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法: 一 ...
随机推荐
- 第五天 loadmore
mutating func loadFresh(completion: (result: APIResult<DeserializedType>) -> ()) -> Canc ...
- 关于phpcms中mysql和mysqli的区别
用phpcms开发一个考试成绩查询的小模块,用电脑上以前下载的phpcms版本为框架开发,一切顺利.想着下载一个最新版本,以后也免了升级的麻烦.于是,下载好,然后把模块目录.model数据库连接文件. ...
- xcode免证书开发
工程和target的code sign 选择 ios developer 工程的team选择为none就ok 推送测试 或者 正式发布的时候要改回来, 有一个严重的缺陷, 就是打包出来的ipa程序有时 ...
- mac 下载安装 IntelliJ IDEA Tomcat
(1)Download IntelliJ IDEA https://www.jetbrains.com/idea/download/ (2)找了个激活码 http://www.oschina.net/ ...
- 教你搭建SpringMVC框架( 更新中、附源码)
一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...
- 40 网络相关函数(八)——live555源码阅读(四)网络
40 网络相关函数(八)——live555源码阅读(四)网络 40 网络相关函数(八)——live555源码阅读(四)网络 简介 15)writeSocket向套接口写数据 TTL的概念 函数send ...
- phpcmsV9.5.8整合百度编辑器Ueditor1.4.3教程
最近在搞phpcms视频功能,官方的视频功能实在是坑,刚开始是想将优酷的上传功能集成到ckeditor,在coding上有个项目,上传已经集成好了,还没有做上传后视频的获取和显示 项目地址:https ...
- 怎样搭建PHP开发环境
搭建PHP开发环境首先第一步要 下载开发环境 wampserver 下载sublime text 2 sublime使用技巧 1:安装漂亮的编程字体http://pan.baidu.com/s/1xM ...
- Android SDK在线更新镜像服务器
http://www.cnblogs.com/tc310/p/4696731.html#_label0
- 同级兄弟元素之间的CSS控制
为了实现这个导航效果:选中菜单中某一项,隐藏掉自身的左边背景线条,同时让他的下一个兄弟元素也隐藏掉线条. 有一种选择器就叫兄弟元素选择器,分为临近兄弟和普通兄弟. 临近兄弟:用 + 表示,只匹配该元素 ...