1. 程式人生 > 其它 >存在就不插入_NoSQL之MongoDB——增刪改查簡介與插入操作詳解

存在就不插入_NoSQL之MongoDB——增刪改查簡介與插入操作詳解

技術標籤:存在就不插入

CRUD操作包括建立、讀取、更新和刪除文件。

建立操作

執行建立或者插入操作可向集合中新增文件。如果集合不存在,插入操作會建立此集合。

MongoDB提供下列方法向集合中插入文件:

  • db.collection.insert()
  • db.collection.insertOne() New in version 3.2
  • db.collection.insertMany() New in version 3.2

在MongoDB中,插入操作的目標是一個集合。所有的寫操作在單文件級別具有原子性。

a9ab07670ba7268f8281f2510b36e8f8.png

讀操作

讀操作是指在一個集合中查詢文件;例如查詢一個集合中的所有文件。MongoDB提供了下面的方法來讀取集合中的文件:

6b4d27fb7c5aad02b9c959b9d85f8f8f.png

db.collection.find()

你可以指定查詢過濾器或準則來確定要返回的文件。

更新操作

更新操作是指修改集合中已存在的文件。MongoDB提供下列方法來執行更新操作:

· db.collection.update()

· db.collection.updateOne() New in version 3.2

· db.collection.updateMany() New in version 3.2

· db.collection.replaceOne() New in version 3.2

在MongoDB中,更新操作的目標是一個集合。所有的寫操作在單文件級別具有原子性。

你能夠指定準則或者過濾器來確定要更新的文件。更新操作所使用的過濾器和讀操作所使用的過濾器具有相同的句法規則。

893f13d0d70cfe61fe56126d5964bdcc.png

刪除操作

刪除操作是指從集合中移除文件。MongoDB提供下列操作來實施刪除操作:

· db.collection.remove()

· db.collection.deleteOne() New in version 3.2

· db.collection.deleteMany() New in version 3.2

在MongoDB中,刪除操作的目標是一個集合。所有的寫操作在單文件級別具有原子性。

你能夠指定準則或者過濾器來確定要刪除的文件。刪除操作所使用的過濾器和讀操作所使用的過濾器具有相同的句法規則。

5e5888271e878ecc6a8b110b36459ac5.png

批量寫入操作

MongoDB 提供了批量寫入文件功能。

1 插入操作

1.1 插入方法

為向集合中插入文件,MongoDB提供下列方法:

  • db.collection.insertOne()
  • db.collection.insertMany()
  • db.collection.insert()

這章提供了一些可在mongo shell中執行的例子:

1.2 插入行為

集合的建立

如果集合不存在,插入操作會建立集合。

_id欄位

在MongoDB中,儲存在集合中的文件需要一個_id欄位作為主鍵。如果沒有指定_id欄位,MongoDB會使用ObjectIds 作為_id欄位的預設值。例如,待插入文件不包含頂級_id欄位,MongoDB會新增一個預設值為ObjectIds 的_id欄位。

另外,如果mongod接受一個不包含_id欄位的待插入文件(例如,通過一個帶有更新設定選項的更新操作),mongod會新增一個預設值為ObjectIds 的_id欄位。

原子性

在MongoDB中,寫操作在單文件級別具有原子性。

1.3 db.collection.insertOne()

3.2版本中新增

db.collection.insertOne():向集合中插入一個文件。

下面的例子為向集合users 中插入一個新文件。新文件有三個欄位:name, age, 和 status,因為文件沒有指定_id欄位,MongoDB會新增一個值為ObjectIds 的_id欄位。

db.users.insertOne( { name: "sue