本篇文章中将讲解如何MongoDB基础基础 之 MongoDB操作文档。
文档的数据结构和JSON基本一致,所有存储在集合中的数据都是BSON格式。BSON是一种类似json格式的一种二进制形式的存储格式,简称Binary JSON。
MongoDB使用insert()或save()方法向集合中插入文档,语法如下:

在上面的例子中,MongoDBTest是我们的集合名,如果该集合不在该数据库中,MongoDB会自动创建该集合并插入文档。doc是定义的变量,可以以变量的形式插入集合。
查看已经插入的文档:

MongoDB查询文档使用find()方法。
find()方法以非结构化的方式来显示所有文档。
MongoDB查询数据的语法格式如下:

除了find()方法之外,还有一个findOne()方法,它只返回一个文档。

MongoDB与RDBMS where语句比较
如果你熟悉常规的SQL数据,通过下表可以更好的理解MongoDB的条件语句查询:
| 操作 | 格式 | 范例 | RDBMS中的类似语句 |
| 等于 | {<key>:<value>} | db.Student.find({"name":"张三"}).pretty() | where name='张三' |
| 小于 | {<key>:{$lt:<value>}} | db.Student.find({"score":{$lt:"80"}}).pretty() | where score<80 |
| 小于或等于 | {<key>:{$lte:<value>}} | db.Student.find({"score":{$lte:"80"}}).pretty() | where score<=80 |
| 大于 | {<key>:{$gt:<value>}} | db.Student.find({"score":{$gt:"80"}}).pretty() | where score>80 |
| 大于或等于 | {<key>:{$gte:<value>}} | db.Student.find({"score":{$gte:"80"}}).pretty() | where score>=80 |
| 不等于 | {<key>:{$ne:<value>}} | db.Student.find({"score":{$ne:"80"}}).pretty() | where score!=80 |
(1)查询name是张三的学生

(2)查询成绩小于80的学生

(3)查询成绩小于等于80的学生

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

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

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

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

以上实例中类似于RDBMS中的where语句:WHERE name='张三' AND subject='C#程序设计'。
MongoDB的OR条件语句使用了关键字$or,语法格式如下:

MongoDB使用update()和save()方法来更新集合中的文档。接下来让我们详细来看下两个方法的应用及其区别。
update()方法用于更新已经存在的文档。语法格式如下:

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

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

MongoDB使用remove()方法来移除集合中的数据。
注意:在执行remove()方法前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。
remove()方法的基本语法格式如下:

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

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