你的位置:首页 > 软件开发 > 数据库 > MongoDB的CRUD操作

MongoDB的CRUD操作

发布时间:2016-08-10 09:00:22
1. 前言在上一篇文章中,我们介绍了MongoDB。现在,我们来看下如何在MongoDB中进行常规的CRUD操作。毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作。MongoDB中的增删改查操作,不同于我们熟悉的关系数据库中的操作。在关系数据库中,比如MySQL,我 ...

MongoDB的CRUD操作

1. 前言

在上一篇文章中,我们介绍了MongoDB.aspx' target='_blank'>MongoDB。现在,我们来看下如何在MongoDB中进行常规的CRUD操作。毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作。

MongoDB中的增删改查操作,不同于我们熟悉的关系数据库中的操作。在关系数据库中,比如MySQL,我们通常使用SQL语句对数据库进行增(INSERT)删(DELETE)改(UPDATE)查(SELECT)。MongoDB在对数据进行操作过程中,使用的是Document进行数据操作。在对数据库进行操作的时候,使用Document来表示需要查询的条件和需要更新的数据,功能类似于关系数据库中的SQL语句。接下来,我们来看下在MongoDB中是如何通过Document来进行CRUD操作的。

注意:下面介绍的CRUD操作,是在MongoDB的mongo shell操作的。mongo shell是一个JavaScript交互环境,是MongoDB提供的一个客户端。不同的语言有自己对应的驱动和对应的操作API,但是原理是类似的。相信通过在mongo shell中进行CRUD操作的介绍,大家也可以举一反三,在不同的语言中操作MongoDB。

2. INSERT操作

MongoDB中的新增操作,把一个新的Document插入到一个Collection中。

如果该Collection不存在,则新增一个新的Collection。这个和关系数据库有很大的区别,在关系数据库中,我们需要定义数据库的schema和表结构,这是NoSQL(MongoDB是NoSQL的一种)数据库和关系数据库很大的区别。在MongoDB中,我们可以在一个Collection中包含多个不同结构的Document(不推荐这样做,一个Collection最好具有相同格式的Document,便于维护和使用)。

关于"_id"字段,当我们新增一个Document到Collection中的时候,MongoDB需要每一个新增的Document中有一个"_id"字段,MongoDB把这个字段作为主键,所以要求这个字段在Collection中是唯一的。如果新增的Document中没有包含"_id"字段,那么MongoDB的客户端会在该Document中新增一个值为ObjectId类型的"_id"  字段;如果MongoDB服务在新增Document的时候发现Document中没有"_id"字段,那么mongod会新增一个值为ObjectId类型的"_id"字段到该Document中。

MongoDB对单个Document的写操作是原子的。

MongoDB提供了如下的方式来进行新增操作:

  • db.collection.insert()
  • db.collection.insertOne() 3.2版本新增
  • db.collection.insertMany() 3.2版本新增

2.1 db.collection.insert()

insert操作可以新增单个Document,也可以新增多个Document。如果新增单个Document,则把需要新增的Document作为参数传递给insert(),如果新增多个Document,则将多个Document的数组作为参数传递个insert()函数。

比如我们需要在"post"这个collection上新增一个Document来表示我们的博客中新增了一篇文章,我们可以这么做:

MongoDB的CRUD操作

现在,我们给post这个Collection新增了一个Document,表示在Blog中新增了一篇文章。我们可以看下现在post这个Collection中是不是有我们新增的Document。

MongoDB的CRUD操作

这里我们使用findOne()来查询,我们可以看到,我们由于没有在Document中包含"_id"字段,所以MongoDB自动为我们新增了一个"_id"字段。

insert()函数可以一次新增多个Document,只要将一个Document的数组传递给insert()就可以了,如:

MongoDB的CRUD操作

2.2 db.collection.insertOne()

insertOne()函数是在3.2版本中新增的,它用来添加单个Document。例子如下:

MongoDB的CRUD操作

2.3 db.collection.insertMany()

insertMany()函数是insert的批量增加的版本,支持一次新增多个Document,它也是3.2版本中新增的函数:

MongoDB的CRUD操作

好了,我们简单介绍了下insert操作的三个函数,下面,我们已经在MongoDB的数据库里新增了几个Document了。接下来,是时候开始学习查找操作来查看这些已经存储在MongoDB的记录了。 

3. QUERY操作

MongoDB提供了db.collection.find()函数来执行查询操作,函数将返回一个游标(cursor),用于遍历查询到的Documents。find()函数接受两个参数,一个是过滤条件,还有一个是投影。

db.collection.find( <query filter>, <projection> )

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:MongoDB的CRUD操作

关键词:MongoDB

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录