文档章节

mongodb简单的基础操作

mrmusic
 mrmusic
发布于 2016/03/13 00:06
字数 1179
阅读 73
收藏 11

数据库操作

1、查看数据库

查看mongodb中的数据库(类似于mysql中的show databases);

> show dbs
local  0.000GB
test   0.000GB

2、使用数据库

如果使用的数据库不存在,mongodb会自动创建对应的数据库(而mysql需要create database <数据库名>)

> use testdb
switched to db testdb

3、查看当前使用的数据库(类似于MySQL中的 select database();)

> db
testdb

4、删除数据库

> use testdb
switched to db testdb
> db.dropDatabase()
{ "dropped" : "testdb", "ok" : 1 }

文档操作

mongodb中是分为集合和文档的。类似于 MySQL中的表和行的关系

1、插入文档(就是类似于插入MySQL表中的上数据,只是在mongodb中这里不需要直接创建对应的所谓的表)

语法:db.<collection_name(集合名称,"所谓的表名")>.insert({"<键名>":"<键值>"......})

因为mongodb是数据文档型数据库,这种{}的结构基本上和javascript中的对象,Python中的字典,redis中的散列是类似的。说白了就是映射关系

> db.collection1.insert({"name":"xiaoming"})
WriteResult({ "nInserted" : 1 })
> db.collection1.insert({"name":"xiaoming2"})
WriteResult({ "nInserted" : 1 })
> db.collection1.insert({"name":"xiaoming3","tel":"10086"})
WriteResult({ "nInserted" : 1 })
> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaoming2" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086"

上面的是在集合collection1中插入的三个文档,就是类似的键值对应键名类似mysql中insert into tablename (列名)value(值);

2、更新文档

语法:db.<集合名>.update({"键值":"键名"},{$set:{"键值":"键名"}})前面是条件,后面是内容

类似于MySQL中 update collection1 set 列名=列值 where 列名=列值;

> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaoming2" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
> db.collection1.update({"name":"xiaoming2"},{$set:{"name":"xiaohong"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.collection1.update({"name":"xiaoming"},{$set:{"tel":"123456"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaohong" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }

上面的例子可以看出改一个不存在的记录来对记录进行新增的操作。

对多行记录进行修改

> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaohong" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong1" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong1" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong1" }
> db.collection1.update({"name":"xiaohong1"},{$set:{"name":"xiaohong2"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaohong" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong1" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong1" }
> db.collection1.update({"name":"xiaohong1"},{$set:{"name":"xiaohong2"}},false,true)
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaohong" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong2" }
>

默认的update只对一行进行修改,需要在要修改的记录后面加入参数  false,true

其实具体的含义就是    False找不到就进行插入操作,true进行修改多行

进行递增和递减的操作 $inc

> db.collection2.insert({"grade":60})
WriteResult({ "nInserted" : 1 })
> db.collection2.find()
{ "_id" : ObjectId("56e439c3cd979329c402b67b"), "grade" : 60 }
> db.collection2.update({"grade":60},{$inc:{"grade":2}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.collection2.find()
{ "_id" : ObjectId("56e439c3cd979329c402b67b"), "grade" : 62 }
> db.collection2.update({"grade":62},{$inc:{"grade":-3}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.collection2.find()
{ "_id" : ObjectId("56e439c3cd979329c402b67b"), "grade" : 59 }

删除某一列使用参数 $unset

> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676"), "name" : "xiaohong" }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong2" }

> db.collection1.update({"name":"xiaohong"},{$unset:{"name":"xiaohong2"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676") }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong2" }

save是一个shell函数,在文档中不存在时插入,存在时更新

语法:db.<集合名>.save()

> db.collection2.find()
{ "_id" : ObjectId("56e439c3cd979329c402b67b"), "grade" : 59 }

> x.num=42
42
> db.collection2.save(x)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.collection2.find()
{ "_id" : ObjectId("56e439c3cd979329c402b67b"), "grade" : 59, "num" : 42 }

> x.num=43
43
> db.collection2.save(x)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.collection2.find()
{ "_id" : ObjectId("56e439c3cd979329c402b67b"), "grade" : 59, "num" : 43 }

上面x不存在时候save就进行插入,x存在时候进行更新的操作

3、删除文档

Db.<集合名>.remove({"键值":"键名"})(删除的where语句。)

Db.<集合名>.drop()(删除所有的行)

> db.collection1.find()
{ "_id" : ObjectId("56e42cffcd979329c402b675"), "name" : "xiaoming", "tel" : "123456" }
{ "_id" : ObjectId("56e42d25cd979329c402b676") }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong2" }

> db.collection1.remove({"name":"xiaoming"})
WriteResult({ "nRemoved" : 1 })
> db.collection1.find()
{ "_id" : ObjectId("56e42d25cd979329c402b676") }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
{ "_id" : ObjectId("56e43689cd979329c402b678"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368ccd979329c402b679"), "name" : "xiaohong2" }
{ "_id" : ObjectId("56e4368dcd979329c402b67a"), "name" : "xiaohong2" }
> db.collection1.remove({"name":"xiaohong2"})
WriteResult({ "nRemoved" : 3 })
> db.collection1.find()
{ "_id" : ObjectId("56e42d25cd979329c402b676") }
{ "_id" : ObjectId("56e42d9dcd979329c402b677"), "name" : "xiaoming3", "tel" : "10086" }
> db.collection1.drop()
true

4、查询操作

先说一下简单的一些条件格式吧,有点多,后面再继续写。。。。

等于 {<key>:<value>

小于 {<key>:{$lt:<value>}}

小于或等于   {<key>:{$lte:<value>}}

大于 {<key>:{$gt:<value>}}

大于或等于  {<key>:{$gte:<value>}}

不等于  {<key>:{$ne:<value>}}


下一篇开写吧


© 著作权归作者所有

mrmusic
粉丝 11
博文 34
码字总数 23901
作品 0
数据库管理员
私信 提问
Mongoose,nodejs和mongodb的连接器。

简介 今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢,介绍Mongoose之前,我们先简单了解一下MongoDB。 MongoDB是一个开源的NoSQL数据库,相比M...

笔阁
2015/10/13
2.4K
0
Oracle 的 NoSQL 恶梦 MongoDB

Oracle的NoSQL恶梦MongoDB (暨MongoDB发布2.6版本之际) 这次发布描绘出了一个极具前景的公司或将引领未来超过十年的创新。 By Jack Clark, 8 Apr 2014 翻译:无若 快速崛起的数据库MongoDB...

溪边九节
2014/04/09
10.6K
40
大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据
2018/04/17
25
0
linux-mongodb你会尝试一下吗?

  简介   MongoDB是C++写一个开源的NoSQL数据库,是基于分布式文件存储,在高并发的情况下,可以增加更多的节点来保证服务的正常运行。MongoDB为WEB应用提供了可扩展的高性能的数据存储解...

linux运维菜
2018/09/11
0
0
Yum安装MongoDB及数据库管理

MongoDB简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能数据...

cchenyz
2018/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
7
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
6
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
7
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
5
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部