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. ubuntu安装php常见错误集锦

    一.configure 报错 1.错误类型: Configure: error: Please reinstall the libcurl distribution-easy.h should be ...

  2. 【转】phpcms授课学习

    来自:http://blog.csdn.net/yanhui_wei/article/category/1220735 <?php 思路: 一.目前在企业中使用比较多的cms内容管理有如下几种: ...

  3. 基于SSL协议的双向认证 - SSL协议 [1]

    1  概要说明 在互联网通信方式中,目前用的最广泛的是HTTPS配合SSL和数字证书来保证传输和认证安全了. 2  详细介绍 2.1    HTTPS HTTPS全称:Hypertext Transf ...

  4. 3d回顾

    手把手教你玩转 CSS3 3D 技术   要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上 ...

  5. 在应用中嵌入Python:转

    在应用中嵌入Python 前面的章节讨论如何扩展Python,如何生成适合的C库等.不过还有另一种情况:通过将Python嵌入C/C++应用以扩展程序的功能.Python嵌入实现了一些使用Python ...

  6. 常用聚类算法(一) DBSCAN算法

    1.DBSCAN简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度 ...

  7. 跟着百度学PHP[4]OOP面对对象编程-10-静态关键字static

    使用static关键字可以将类中的成员标识为静态的,既可以用来标识成员属性,也可以用来标识成员方法. 以Person类为例,如果在person类中有一个“$country=’china’”的成员属性, ...

  8. BZOJ 1004: [HNOI2008]Cards

    Description 给你一个序列,和m种可以使用多次的置换,用3种颜色染色,求方案数%p. Sol Burnside定理+背包. Burnside定理 \(N(G,\mathbb{C})=\fra ...

  9. css选择器(E[att^=”val”]序号选择器)

    一.基本选择器序号 选择器 含义1. * 通用元素选择器,匹配任何元素2. E 标签选择器,匹配所有使用E标签的元素3. .info class选择器,匹配所有class属性中包含info的元素4. ...

  10. Glyphicons字体图标

    Glyphicons字体图标-----好处可以减少请求,容易控制样式! <p> <button type="button" class="btn btn ...