使用MongoDB操作文档


当前第2页 返回上一页

(5)查询成绩大于等于80分的学生

db.Student.find({"score":{$gte:"80"}}).pretty()

查询结果如下图所示:

(6)查询成绩不等于80分的学生

db.Student.find({"score":{$ne:"80"}}).pretty()

查询结果如下图所示:

3、MongoDB AND条件查询

MongoDB的find()方法可以传入多个键(key),每个键(key)以逗号分隔开,等价于常规SQL的AND条件。

语法格式如下:

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

例如:查询姓名为张三并且课程是C#程序设计的学生信息。

db.Student.find({"name":"张三","subject":"C#程序设计"}).pretty()

查询结果如下图所示:

以上实例中类似于RDBMS中的where语句:WHERE name='张三' AND subject='C#程序设计'。

4、MongoDB OR 条件查询

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

>db.collection.find(
  {
    $or:[
           {key1:value1},{key2:value2}
        ]
   }
)

例如:查询姓名是李四或者成绩等于80的学生

db.Student.find({$or:[{"name":"李四"},{"score":"80"}]}).pretty()

查询结果如下图所示:

三、更新文档

MongoDB使用update()和save()方法来更新集合中的文档。接下来让我们详细来看下两个方法的应用及其区别。

1、update()方法

update()方法用于更新已经存在的文档。语法格式如下:

db.collection.update(
  <query>,
  <update>,
 {
   upsert:<boolean>,
   multi:<boolean>,
   writeConcern:<document>
  }
)

参数说明:

  • query:update的查询条件,类似sql update查询内where后面的条件。
  • update:update的对象和一些更新的操作符(如$set,Sinc......)等,也可以理解为sql update查询内set后面的。
  • upsert:可选参数,这个参数的意思是:如果不存在update的记录,是否插入新的文档。如果为true则插入,默认是false不插入。
  • multi:可选参数,MongoDB默认是false,只更新找到的第一条记录。如果这个参数为true,就把按条件查询出来的多条记录全部更新。
  • writeConcern:可选参数,抛出异常的级别。

writeConcern的几种抛出异常的级别参数

  • writeConcern.NONE:没有异常抛出。
  • writeConcern.NORMAL:仅抛出网络错误异常,没有服务器错误异常抛出。
  • writeConcern.SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
  • writeConcern.MAJORITY:抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作。
  • writeConcern.FSYNC_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
  • writeConcern.JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
  • writeConcern.REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。

例如:使用update()方法更新标题(title)

上面的语句只会更新第一条查询到的文档,如果你要更新多条相同的文档,则需要设置multi参数为true。

如果要更新的数据不存在,upsert参数设置为true则会插入数据。

2、save()方法

save()方法通过传入的文档来替换已有文档,语法格式如下:

db.collection.save(
  <document>,
  {
    writeConcern:<document>
  }
)

参数说明:

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

例如:更新_id=5a702a7f2c6ed8f4d3491831的文档。

四、删除文档

MongoDB使用remove()方法来移除集合中的数据。

注意:在执行remove()方法前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

remove()方法的基本语法格式如下:

db.collection.remove(
  <query>,
  <justOne>
)

如果MongoDB是2.6版本以后的,语法格式如下:

db.collection.remove(
  <query>,
  {
    justOne:<boolean>,
    writeConcern:<document>
   }
)

参数说明:

  • query:可选参数,删除文档的条件。
  • justOne:可选参数,如果设为true或1,则只删除一个文档。
  • writeConcern:可选参数,抛出异常的级别。

实例

1、删除title为MongoDB教程的文档,只删除一个:

2、删除所有数据

如果想删除所有数据,可以使用下面的例子

到此这篇关于使用MongoDB操作文档的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。


标签:MongoDB

返回前面的内容

相关阅读 >>

mongodb性能优化及监控

centos 7下用yum快速安装mongodb的方法教程

mongodb入门教程之主从复制配置详解

mongodb教程之聚合(count、distinct和group)

mongodb启动命令参数中文说明

使用mongodb操作文档

mongodb开源数据库开发工具dbkoda

mongodb常用数据类型分享

mongodb 游标详解及实例代码

mongodb 语法使用小结

更多相关阅读请进入《mongodb》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...