[关闭]
@songying 2018-09-19T11:26:24.000000Z 字数 2796 阅读 1307

mongodb collection 操作

mongodb


其余

Insert Documents

在 MongoDB 中,你不需要创建集合。当你向一个collection中插入文档时,如果 collection不存在,MongoDB 会自动创建 该collection。

db.collection.insertOne()

参考: https://docs.mongodb.com/manual/reference/method/db.collection.insertOne/#db.collection.insertOne

  • 功能: 插入一个document
  • 返回值: 一个document包含: insertedId(被插入文档的_id 值) 与 acknowledged(boolean类型, 是否启用writeConcern参数, 启用:真,不启用: 假)
  • 异常: a writeError or writeConcernError exception.
  1. db.collection.insertOne(
  2. <document>,
  3. {
  4. writeConcern: <document>
  5. }
  6. )
  • document: document类型, 表示要插入的document
  • writeConcern: 可选,document类型

db.collection.insertMany()

  • 功能: 插入多个文档
  • 返回值: An array of _id 与 A boolean acknowledged
  1. db.collection.insertMany(
  2. [ <document 1> , <document 2>, ... ],
  3. {
  4. writeConcern: <document>,
  5. ordered: <boolean>
  6. }
  7. )
  • ordered: boolean类型, 可选, 是否按顺序插入, 默认为true。
  1. db.createCollection(name, options) //创建集合, options用来指定集合配置的文档
  2. db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } ) //创建集合的例子
  3. db.collection_name.drop() //删除集合
  4. show collections //显示该数据库下的所有集合
字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。
autoIndexID 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

04. 对文档的操作

4.1. 对文档的插入操作

  1. db.collection.insert() //集合插入一个或多个文档
  2. db.collection.insertOne() //向集合插入了单个文档
  3. db.collection.insertMany() //向集合插入多个文档
  1. db.users.insertOne(
  2. {
  3. name: "sue",
  4. age: 19,
  5. status: "P"
  6. }
  7. )
  8. db.users.insertMany(
  9. [
  10. { name: "bob", age: 42, status: "A", },
  11. { name: "ahn", age: 22, status: "A", }
  12. ]
  13. )

**db.collection.insert() **方法返回含有操作状态的 WriteResult 对象

  1. WriteResult({ "nInserted" : 1 })
  2. nInserted 字段指明了插入文档的总数.如果该操作遇到了错误, WriteResult 对象将包含该错误信息

4.2 对文档的查询操作

  1. db.collection.find( <query filter>, <projection> )
  1. db.collection.find() # 选择集合中的所有文档
  2. db.users.find( { field1: value1 } ) # 选择所有包含 field 字段并且该值等于特定 <value> 的所有文档
  3. db.users.find( { field: { $in: [ "val1", "val2" ] } } ) # 选择符合field字段值为`val1`或 `val2`的文档
  4. db.users.find( { field1 : val1, field2: val2 } } ) # 选择同时符合两个条件的文档
  5. db.users.find(
  6. {
  7. $or: [ { status: "A" }, { age: { $lt: 30 } } ]
  8. }
  9. ) # 选择符合条件1 或条件2 的所有文档
  10. db.users.find(
  11. {
  12. status: "A",
  13. $or: [ { age: { $lt: 30 } }, { type: 1 } ]
  14. }
  15. )

4.2.1 嵌入文档的查询

4.3 更新文档

  1. db.collection.updateOne() //即使可能有多个文档通过过滤条件匹配到,但是也最多也只更新一个文档
  2. db.collection.updateMany() //更新所有通过过滤条件匹配到的文档
  3. db.collection.replaceOne() //即使可能有多个文档通过过滤条件匹配到,但是也最多也只替换一个文档
  4. db.collection.update() //即使可能有多个文档通过过滤条件匹配到,但是也最多也只更新或者替换一个文档

参数说明:

4.4 删除文档

db.collection.remove() Delete a single document or all documents that match a specified filter.
db.collection.deleteOne() Delete at most a single document that match a specified filter even though multiple documents may match the specified filter.3.2 新版功能.
db.collection.deleteMany() 删除所有匹配指定过滤条件的文档.

4.4.1 删除集合中所有文档

  1. db.users.deleteMany({})
  2. db.users.remove({})

4.4.2 删除特定文档

  1. db.users.deleteMany({ key1: val1 })
  2. db.users.remove( { key1 : val1 } )

4.4.3 删除符合条件单个文档

  1. db.users.deleteOne( { key1: val1 } )
  2. db.users.remove( { key1: val1 }, 1)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注