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文件导入导出的更多相关文章

  1. CSV文件导入导出MySQL

    使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...

  2. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

  3. MySql csv文件导入导出

    一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...

  4. Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...

  5. 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出  ...

  6. 【转】Java操作CSV文件导入导出

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  7. 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...

  8. mongodb csv 文件导入数据库,删除特定字段

    1. 导入数据库 mongoimport -h host_ip -p port -d db_name -c collection_name --fields name1,name2,name3,nam ...

  9. 将csv格式的数据文件导入/导出数据库+添加新的字段

    最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题. 因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法: 一 ...

随机推荐

  1. 请求WebMethod, Ajax 处理更加专注

    在WebForm下 开发ajax程序,需要借助于一般处理程序(*.ashx)或web服务(*.asmx),并且每一个ajax请求,都要建一个这样的文件,如此一来,如 果在一个项目中ajax程序多了,势 ...

  2. ubuntu下修改apache2.4的rewrite

    sudo a2enmod rewrite 修改/etc/apache2/apache2.conf中 AllowOverride None 为 AllowOverride ALL 重启 service ...

  3. Code First01---CodeFirst项目的搭建

    Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对于程序 ...

  4. VirtualBox CentOS安装增强功能与设置共享文件夹

    如果安装的是CentOS minimal版无网络的可以看这篇文章. 一.安装依赖环境 依次执行如下命令 yum install update yum install kernel-headers yu ...

  5. C++基础知识(1)----文件操作

    参照 小菜鸟上校 的博客 // file operat.cpp : 定义控制台应用程序的入口点. /*上述例子的主要功能是将一个文件的内容复制到另一个文件中, 这个功能主要由一个函数copy来实现.它 ...

  6. 5 HandlerIterator处理程序迭代器类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso Handler ...

  7. PHP 文件下载流程

    前台HTML: 添加download属性,不打开download.php页面 <a style='color:blue' href='download.php' download='data/C ...

  8. CentOS 6.4 搭建git 服务器

    CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档ht ...

  9. MySQL高可用性之Keepalived+MySQL(双主热备)

    环境描述:OS:CentOS6.5_X64MASTER:192.168.0.202BACKUP:192.168.0.203VIP:192.168.0.204 1.配置两台Mysql主主同步[root@ ...

  10. JS插件之——ztree

    很牛逼的一个树形菜单,树形下拉框插件.一年前用过,很好用.今天又有机会拿过来用,温故一下基本点,nice!! 官方文档说明的非常详细,按照API慢慢看,耐心解读,自然就可以解惑了. 官方文档及其源码下 ...