mongodb的常用操作
对于nosql之前工作中有用到bekerlydb,最近开始了解mongodb,先简单写下mongodb的一些常用操作,当是个总结:
1.mongodb使用数据库(database)和集合(collection)来存放数据, 数据库中包含很多集合,一个数据库相当于mysql中的一个库,集合(collection)类似于mysql中的表(table),collection使
用key_value的形式存储数据,数据格式是BSON。
2.mongodb使用use dbname来选择数据库,如果数据库不存在,在第一次保存数据的时候会创建数据库。
数据库中的集合也一样。
3.mongodb的常用操作,很多和mysql相似:
show databases; //显示存在的数据库(简写show dbs)
use dbname; //选择数据库(dbname:对应的数据库名)
show collections; //显示当前选择的db中的集合
//通过连接端关闭mongodb服务端
use admin;
db.shutdownServer();
4.mongodb中数字类型的key也会当做字符串存储,而value则会区分数字和字符串
键值对{"1":23}和{1:23}是相同的,{1:23}和{1:"23"}是有区别的
5.刚学mongodb的时候感觉用起来和stl里面的map相似,就连遍历都相似:
var cur = db.test.find();
while(cur.hasNext()){printjson(cur.next());}
mongodb的shell支持javascript操作数据库,printjson()函数以json格式输出结果。
是不是感觉像map里的迭代器遍历一样。
6.mongodb的增删改查操作(test为自建的集合名):
//增加
db.test.save({1:"hello"}); //保存数据到test集合中
db.test.insert({1:"hello"});//插入数据到test集合中(和insert功能相同)
//删除
db.test.remove({1:"hello"});//删除所有包含键值对{1:"hello"}的行
//修改
db.test.update({1:"hello"},{$set:{1:"hello world"}}); //使用{1:"hello world"}替换{1:"hello"},记住set前面的$一定不能忘了,不然就是用{set:{1:"hello world"}}这个嵌套键
值对替换掉原来的值
db.test.update({1:"hello"},{$set:{2:"hello world"}}); //更新的时候改变了key,相当于增加了{2:"hello world"}到原来的行中,并没有替换掉原来的{1:"hello"}
db.test.update({1:"hello"},{2:"hello"}); //这个相当于先找到{1:"hello"}的行,再用{2:"hello"}替换掉整行的数据,并不只有{1:"hello"}的值被替换
//查找
db.test.find(); //显示test集合中的数据
db.test.find({1:"hello"});//查找键值对含有{1:"hello"}的行
db.test.findOne({1:"hello"});//查找键值对含有{1:"hello"}的行,只返回第一条数据
7.mongodb数据库的备份,还原,删除
mongodb备份使用mongodump工具, 还原使用的是mongorestore工具,这两个程序都在mongodb的bin目录下存在.
//备份
mongodump -h serverip -d dbname -o backpath
-h:mongodb服务器的地址,在本机可以用localhost,
-d:备份的数据库的名字,
-o:备份文件存放目录
例如windows下备份test数据库到d:\data\backup,命令行下输入:
mongodump -h localhost -d test -o d:\data\backup
//还原
mongorestore -h serverip -d dbname -directoryperdb backpath
-directoryperdb:备份文件存放的路径
例如还原上面备份的test数据库,命令行下输入:
mongorestore -h localhost -d test -directoryperdb d:\data\backup\test
//删除数据库
需要用mongo连接到服务器,在shell模式下进行:
use test; //选择需要删除的数据库
db.dropDatabase(); //删除数据库
8.mongodb集合导出,导入,删除
//导出
使用mongoexprot默认以json格式将collection导出到文件,也可以指定为csv格式
mongoexprot -h serverip -d dbname -c collectionname -o path
-h: mongodb服务器ip
-d:数据库名
-c:数据库下面的一个集合名字
-o:导出后的文件名
导出csv格式,还需要指定csv文件的头:
mongoexport -h serverip -d dbname -c collectionname --csv -f 字段名1,字段名2,字段名3 -o path
--csv:指定导出为csv格式
-f:指定导出的csv的文件的头,一般根据collection的字段key来指定
//导入
使用mongoimport导入:
mongoimport -h serverip -ddbname -c collectionname path
例如导入user.data到test数据的user集合:
mongoimport -h localhost -d test -c user user.data
导入csv格式:
mongoimport -h serverip -d dbname -c collectionname --type csv --headerline --file path
--type:文件类型
--headerline:表示不导入首行(csv文件的首行是表头)
--file:导入文件的路径
注意:如果导入的时候需要先删除掉原来的集合,可以再加上-drop
//删除集合
db.test.drop();
mongodb的常用操作的更多相关文章
- 【mongodb系统学习之八】mongodb shell常用操作
八.mongodb shell常用基础操作(每个语句后可以加分号,也可以不加,看情况定(有的工具中可以不加),最好是加): 1).进入shell操作界面:mongo,上边已有演示: 2).查看当前使 ...
- MongoDB的常用操作总结
简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. ...
- mongodb的常用操作(三)
继续mongodb的学习和总结: 11.mongodb的mapreduce功能 mapreduce可以说是mongodb的一个很强大的功能,可以实现复杂的运算和统计,做一个简要的总结: 假设有user ...
- MongoDB之常用操作
最近经常使用MongoDB来进行数据的操作,特此记录总结一下
- mac 安装mongodb与常用操作
1.安装 brew update brew install mongodb 2.启动mongo mongod --config /usr/local/etc/mongod.conf 3.启动 mong ...
- mongodb的常用操作(二)
继续mongodb的学习: 9.mongodb条件查询 假设有user集合,里面结构如下:{ "_id" : ObjectId("52ab35d281181f853264 ...
- MongoDB数据库常用操作
推荐文章 --- 一天精通MongoDB数据库 注意: monogdb数据在使用之后必须及时 mongodb.close()否则后台崩溃. 1. 删除文档中的一个字段 db.<集合名>.u ...
- mongodb数据库常用操作的整理
这是个人在项目中抽取的代码,自己写的utils的通用模块,使用的框架是tronado,包括了数据库的认证,以及增删改查排序,如有特别需要可以联系我或者自己扩展,刚学python不久,仅供参考,例子如下 ...
- mongodb常用操作语句
mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...
随机推荐
- C# 读取文件的修改时间、访问时间、创建时间
C# 获取文件的各个时间如下: 表2<ccid_nobr> 属性 功能和用途 Attributes 返回和文件相关的属性值,运用了FileAttributes枚举类型值 CreationT ...
- [Java] 关键字final、static使用总结
一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率.final ...
- TFS 2010 使用手册(四)备份与恢复
本文参考了http://developer.51cto.com/art/201010/229066.htm的文章. TFS的备份与恢复一直没有很完整的解决方案,要完成一个很好的备份要有很多的手动步骤才 ...
- Oracle基础 存储过程
一.子程序 子程序是已命名的PL/SQL块,它们存储在数据库中,可以Wie它们指定参数,可以从任何数据库客户端和应用程序中调用它们.子程序包括存储过程和函数. 子程序包括: 1.声明部分:声明部分包括 ...
- ReactNative学习-webView
在软件内部打开一个网页--不喜欢它没有办法返回,还需要再添加返回按钮== import React from 'react'; import { AppRegistry, Component, Scr ...
- 在centos中创建nginx启动脚本
1. 建立脚本文件nginxd [root@could]# vi /etc/init.d/nginxd 插入以下内容 #!/bin/bash## chkconfig: - 85 15# descrip ...
- POJ 3921 Destroying the bus stations 沿着最短路迭代加深搜索
题目:给出一个图,问最少删除多少个点,使得从点1到点n经过的点数超过k个. 分析: 上网搜了一下,发现很多人用网络流做的,发现我不会.再后来看到这篇说网络流的做法是错的,囧. 后来发现点数有点少,直接 ...
- 转 : React Native 开发之 IDE 选型和配置
转:https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651112392&idx=1&sn=135e29ddde30 ...
- C# 学习笔记03 DataTable
1. DataTable 类对象表示一个内存中数据表.可以用来存放从数据库得到的DataSet. DataTable dt = SqlHelper.ExecuteDataTable(parameter ...
- BootStraps 布局
<div class="container"> //创建一个容器 <div class="row"> //创建行,每行总有12个格数 ...