MongoDB对文档进行操作

文档的数据结构和JSON基本一样。

所有存储在集合中的数据都是BSON格式。

BSON是一种类似JSON的二进制形式的存储格式,是Binary JSON的简称。

------------------------------------------MongoDB插入文档-------------------------------------

介绍了如何将数据插入到MongoDB的集合中!!!

MongoDB使用了insert()或save()方法向集合中插入文档。

语法:db.COLLECTION_NAME.insert(document)

实例:

以下文档可以存储在MongoDB的test数据库的learn集合中:

以上实例中learn是集合名,如果该集合不在数据库中,MongoDB会自动创建该集合并插入文档。

使用db.learn.find()命令查看已插入的文档:

我们也可以将数据定义为一个变量,如下:

执行插入操作:

插入文档也可以使用db.learn.save(document)命令。如果不指定_id字段save()方法类似于insert()方法。如果指定_id字段,则会更新该_id的数据。

------------------------------------------MongoDB更新文档-------------------------------------

MongoDB使用了update()或save()方法来更新集合中的文档。

update()方法

语法:

参数说明:

  • query:update的查询条件,类似于sql update查询内where后面。
  • update:update的对象和一些更新的操作符(如:$,$inc...)等,也可以理解为sql update查询内set后面的。
  • upset:可选,如果不存在uodate的记录,是否插入objNew,true为插入,默认为false,不插入。
  • multi:可选,默认为false,只更新找到的第一条记录,如果为true,就把按天监查出来的福哦天激励全部更新。
  • writeConcern:可选,抛出异常的级别。

实例:

先在集合中插入一条如下数据:

使用update()方法来更新title:

以上语句只会修改第一条发现的文档,如果要修改多条相同的文档,则需要设置multi参数为true。

save()方法

语法:save方法是通过传入的文档来替换已有的文档。

参数说明:

  • document:文档数据
  • writeConcern:可选,抛出异常的级别。

实例:

以下实例中替换了_id为5d54fa454a5e19c982d1ce4a,文档中的likes改为110

替换成功后,通过find()命令来查看替换后的数据:

更多实例:

只更新第一条记录:db.learn.update( { "count" : { $gt : 1 } } , { $set : { "test" : "OK"} } );

全部更新:db.learn.update( { "count" : { $gt : 3 } } , { $set : { "test" : "OK"} },false,true );

只添加第一条:db.learn.update( { "count" : { $gt : 4 } } , { $set : { "test" : "OK"} },true,false );

全部添加进去:db.learn.update( { "count" : { $gt : 5 } } , { $set : { "test" : "OK"} },true,true );

全部更新:db.learn.update( { "count" : { $gt : 15 } } , { $inc : { "test" : 1} },false,true );

只更新第一条记录:db.learn.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

------------------------------------------MongoDB删除文档-------------------------------------

语法:

在执行remove函数之前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

参数说明:

  • query:(可选)删除文档的条件。
  • justOne:(可选)如果设为true或1,则只删除一个文档,如果不设置该参数,或者用默认值false,则删除所有匹配条件的文档。

实例:

只删除找到的第一条记录,可以设置justOne为1:db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

删除所有的数据:db.col.remove({}) ,相当于SQL中的truncate。

------------------------------------------MongoDB删除文档-------------------------------------

语法:

db.COLLECTION_NAME.find(query,projection)。

db.COLLECTION_NAME.findOne()。//只返回一个文档

db.COLLECTION_NAME.find().pretty()。//以格式化的方式读取数据

参数说明:

  • query:可选,使用查询操作符指定查询条件。
  • projection:可选,使用投影操作符指定返回的键。省略该参数,查询时返回文档中所有的键值。

实例:

MongoDB与RDBMS Where语句比较:

操作格式范例RDBMS中的类似语句
等于{<key>:<value>}db.col.find({"by":"XXXXX"}).pretty()where by = 'XXXXX'
小于{<key>:{$lt:<value>}}db.col.find({"likes":{$lt:50}}).pretty()where likes < 50
小于或等于{<key>:{$lte:<value>}}db.col.find({"likes":{$lte:50}}).pretty()where likes <= 50
大于{<key>:{$gt:<value>}}db.col.find({"likes":{$gt:50}}).pretty()where likes > 50
大于或等于{<key>:{$gte:<value>}}db.col.find({"likes":{$gte:50}}).pretty()where likes >= 50
不等于{<key>:{$ne:<value>}}db.col.find({"likes":{$ne:50}}).pretty()where likes != 50

MongoDB AND 条件

      MongoDB的find()方法可以传入多个键(key),每个键(key)以逗号隔开,相当于SQL中的AND条件。

      db.COLLECTION_NAME.find({key1:value1, key2:value2}).pretty()

 MongoDB OR 条件

      MongoDB OR 条件语句使用了关键字$or,语法格式:

AND 和 OR 联合使用

例子:where likes>50 AND (by='hdn' OR title='MongoDB学习')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值