MongoDB(二) 增删改——我们所熟悉的操作
来源:互联网 发布:网 网络手游交易网√ 编辑:程序博客网 时间:2024/05/16 10:31
前面介绍了如何启动MongoDB以及用shell连接, 下面介绍一些我们在mysql中所熟悉的一些操作
1. 创建数据库
MongoDB 创建数据库的语法格式如下:```use DATABASE_NAME```如果数据库不存在,则创建数据库,否则切换到指定数据库。演示```shell> use zxmantouswitched to db zxmantou> dbzxmantou>```可见我们当前的db已经是zxmantou了, 使用**show dbs**命令查看数据库列表```shell> show dbsadmin 0.000GBlocal 0.000GBtest 0.000GB```发现新增的数据库并不在其中. 要显示它,我们需要向 zxmantou 数据库插入一些数据。```shell> db.user.insert({name:"zxmantou"})WriteResult({ "nInserted" : 1 })> show dbsadmin 0.000GBlocal 0.000GBtest 0.000GBzxmantou 0.000GB>```
删除数据库
删除当前数据库,默认为 test, 下面实例中将删除我们新建的zxmantou库:
> show dbsadmin 0.000GBlocal 0.000GBtest 0.000GBzxmantou 0.000GB> dbzxmantou> db.dropDatabase(){ "dropped" : "zxmantou", "ok" : 1 }> show dbsadmin 0.000GBlocal 0.000GBtest 0.000GB
删除集合(删除数据表)
集合删除语法格式如下:db.COLLECTION_NAME.drop()
实例:
> use zxmantouswitched to db zxmantou> show tablesuser> db.user.drop()true> show tables>
插入文档(新增记录)
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:db.COLLECTION_NAME.insert(document)
实例:
> use zxmantouswitched to db zxmantou> db.user.insert({... name:"zxmantou",... age:"27",... gender: "male",... site: "www.zhangyuxiaojiao.com"... })WriteResult({ "nInserted" : 1 })> db.user.find(){ "_id" : ObjectId("58e4d75bbe3140034aeb2ba1"), "name" : "zxmantou", "age" : "27", "gender" : "male", "site" : "www.zhangyuxiaojiao.com" }>
以上实例中 user 是我们的集合名(数据表名),如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档(一行记录)。
更新文档(更新记录)
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。5.1 Update()方法:
update() 方法用于更新已存在的文档。语法格式如下:```db.COLLECTION_NAME.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> })```
参数说明: query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的 upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。 multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。 writeConcern :可选,抛出异常的级别。
我们刚才已经插入了一条记录, 现在对其进行修改:
> db.user.find(){ "_id" : ObjectId("58e4d75bbe3140034aeb2ba1"), "name" : "zxmantou", "age" : "27", "gender" : "male", "site" : "www.zhangyuxiaojiao.com" }> db.user.update({'name':'zxmantou'},{$set:{'age':18}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.user.find().pretty(){ "_id" : ObjectId("58e4d75bbe3140034aeb2ba1"), "name" : "zxmantou", "age" : 18, "gender" : "male", "site" : "www.zhangyuxiaojiao.com"}>
可见年龄已经年轻到18岁啦~
5.2 save() 方法
save() 方法通过传入的文档来替换已有文档。语法格式如下:db.collection.save( <document>, { writeConcern: <document> } )
参数说明: document : 文档数据。 writeConcern :可选,抛出异常的级别。
实例
以下实例中我们替换了 _id 为 58e4d75bbe3140034aeb2ba1 的文档数据:
> db.user.save({... "_id" : ObjectId("58e4d75bbe3140034aeb2ba1"),... "name" : "zhangyuxiaojiao",... "gender" : "male",... "age" : "27",... "site" : "zxmantou.github.io"... })WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.user.find().pretty(){ "_id" : ObjectId("58e4d75bbe3140034aeb2ba1"), "name" : "zhangyuxiaojiao", "gender" : "male", "age" : "27", "site" : "zxmantou.github.io"}>
更多实例
只更新第一条记录:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只添加第一条:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部添加加进去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一条记录:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
删除文档(删除记录)
remove() 方法的基本语法格式如下所示:db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> })
参数说明: query :(可选)删除的文档的条件。 justOne : (可选)如果设为 true 或 1,则只删除一个文档。 writeConcern :(可选)抛出异常的级别。
实例:
> db.user.find().pretty(){ "_id" : ObjectId("58e4d75bbe3140034aeb2ba1"), "name" : "zhangyuxiaojiao", "gender" : "male", "age" : "27", "site" : "zxmantou.github.io"}> db.user.remove({'name':'zhangyuxiaojiao'})WriteResult({ "nRemoved" : 1 })> db.user.find().pretty()>
如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):
>db.col.remove({})
- 查询文档(查询记录)
之前实例已经演示了通过find()方法来查询所有记录的方法, 下一篇内容中将详细介绍复杂的查询方法
阅读全文
0 0
- MongoDB(二) 增删改——我们所熟悉的操作
- Php操作mongodb的基本操作—增删改…
- MongoDB增删改操作(二)
- mongoDB的操作---增删改查
- MongoDB的增删改查操作
- mongodb的增删改查操作指南
- mongoDB-- 基本的操作增删改查
- MongoDB—增删查改
- php 操作mongodb——增删改查
- node学习篇——mongodb增删改查操作
- Mongodb的增删改
- MongoDB增删改操作(一)
- MongoDB中的增删改操作
- MongoDB的一些基本操作命令(三)————增删改查和语句块操作
- MongoDB——增删查改
- MongoDB(三)——增删改查
- MongoDB——文档增删查改
- MongoDB(三)——增删改查
- HDU 1016 Prime Ring Problem DFS
- HTTP协议—— 简单认识TCP/IP协议
- 关于在画图程序中做图形拖动模块的一个bug
- linux环境下时区无法设置(系统时间慢8个小时)的问题解决
- Mybatis取出来的Date没有时间只有日期
- MongoDB(二) 增删改——我们所熟悉的操作
- 微信小程序选择图片和预览图片
- 简单的android网络请求
- [BZOJ 3884]上帝与集合的正确用法:欧拉定理
- 深入浅出 Retrofit(一)
- Python 内编写类的各种技巧和方法
- Win32 SDK基础(13)—— 键盘和鼠标消息
- 算法导论程序38--最长公共子序列(Python)
- 16款免费开源的商业智能工具