专栏首页Java程序员那些事Mongodb常用命令总结

Mongodb常用命令总结

查看数据库

show dbs;

选择某个库

use db;

查看库下的表(暂且说成是表,mongodb中称表问文档)

show collections;

插入数据

db.table.insert( {'name':'demo','sex':'m','age':18} );

(注意在插入数据时的数据类型)

插入数据可随意定义每行的结构,mongodb中没有固定的表结构

eg: db.table.insert( {'names':'demo','sexs':'m','age':20} );

查询数据

db.table.find();

(在查询有条件的数据时,就要注意到数据类型的问题了)

eg:

db.table.insert( {'id':'123','age':18} );

db.table.insert( {'id':123 ,'age':20} );

db.table.find( {'id':123} ); # 只能查看到第二条数据

另外一些条件(如下用法):

$lt(小于),$lte(小于等于),$gt(大于),$gte(大于等于),$ne(不等于)

db.table.find( {'age':{ '$lt':19 } } )

排序

db.table.find().sort( {'age':1} )

1 表示升序 -1 表示降序

分页

db.table.find().limit(10).skip(20);

( skip 规定忽略几个,上述查询类似mysql中的 limit 20,10 )

查询统计

db.table.count();

db.table.find( {'age':{'$lt':19} } ).count()

删除数据

db.table.remove();//删除全部

db.table.remove( {'id':123} );//删除指定数据

更新数据

db.table.update( {'id':123},{'age':25} )

// 查找id为123的数据,将其age字段更新为25

do.table.update( {'id':123} , {'age':22} ,true );

// 类似于mysql的 replace用法 存在则更新,不存在则添加

索引

db.table.ensureIndex({'id':1})// 创建索引

db.table.dropIndex({'id':1})// 删除索引

db.table.ensureIndex({'id':1},{unique:true}); // 独立索引

db.table.ensureIndex({'id':1,'age':1})// 联合索引

db.table.ensureIndex( { loc : "2dsphere" } )//空间索引

备份(使用 mongodump.exe 备份数据)

mongodump.exe -d learn -o backup (备份整个 learn 数据库)

mongodump.exe -d learn -c test -o backup (备份单独的表)

( -d 数据库 -c 数据表 -o 备份目录)

恢复数据库( 使用 mongorestore.exe 恢复)

mongorestore.exe -d lear -c test backup/learn/unicorns.bson

( -d 数据库 -c 数据表 )

导出数据

mongoexport.exe -d test -c mapinfo -o export.dat( 导出数据为json格式数据,默认格式 )

( -d 数据库 -c 表 -o 导出文件名)

mongoexport.exe -d test -c mapinfo --csv -f id,name -o csv.csv (导出数据为csv格式数据)

( -d 数据库 -c 表 --csv 导出为csv格式 -f 导出字段名 -o 导出文件名)

导入数据

mongoimport.exe -d test -c mapinfo mapinfo.dat (导入 json 格式数据 ,默认格式)

(-d 数据库 -c 表 数据源)

mongoimport.exe -d test -c mapinfo --type csv --headerline --file csv.csv (导入csv格式数据)

( -d 数据库 -c 表 --type 类型 --headerline 不导入第一行 --file 数据源)

本文分享自微信公众号 - Java程序员那些事(zgsoft44),作者:Java程序员那些事

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JDK7的Comparison method violates its general contract异常

    前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为...

    用户6182664
  • 去重是distinct还是group by?

    distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但应该仔细区分,因为用错场景的话,效...

    用户6182664
  • 探讨Java中的父子类转化问题

    --------------------------------------------------------------------------------...

    用户6182664
  • 如何在电脑上保存微信公众号文章封面图片?

    王小婷
  • GLSL ES 语言—变量数值类型

    GLSL ES 要求你具体指明变量的数据类型: <类型> <变量名> 如 vec4 a_position。 在进行赋值操作(=)时,等号左右两侧的数据类型必须一...

    张晓衡
  • 优化算法——差分进化算法(DE)

       差分进化算法(Differential Evolution, DE)是一种基于群体差异的启发式随机搜索算法,该算法是由R.Storn和K.Price为求解...

    zhaozhiyong
  • 优化算法——差分进化算法(DE)

    一、差分进化算法的介绍    差分进化算法(Differential Evolution, DE)是一种基于群体差异的启发式随机搜索算法,该算法是由R.Stor...

    zhaozhiyong
  • Linux操作_常用命令操作练习

    Zoctopus
  • 北京邮电大学张镇平:基于在线评论的用户需求感知 | AI研习社77期大讲堂总结

    随着在线评论内容的剧增,用户的消费体验变得可感可知,情感分析技术、文本挖掘技术的发展极大地提升了商家感知客户需求并及时提供反馈的能力。

    AI科技评论
  • Linux操作_常用命令操作练习

    Zoctopus

扫码关注云+社区

领取腾讯云代金券