MongoDB学习笔记(一)-Insert操作

MongoDB插入

Insert Documents

  • menu
    • insert Behavior
    • insert Methods

插入行为

* 如果集合不存在,插入操作将创建集合。
* 在集合中,具有唯一主键`_id`。如果在插入文件中未声明`_id`;MongoDB将自动使用`ObjectIds`作为`_id`

插入数据的方法

MongoDB提供了保存数据的方法一共有三个:

    1. db.collection.insertOne()
    2. db.collection.insertMany()
    3. db.collection.insert()

db.collection.insertOne()


*3.2版本*
将单个文档插入到一个集合,
 
db.users.insertOne(
   {
      name: "sue",
      age: 19,
      status: "P"
   }
)
//会返回文档的操作状态。
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5742045ecacf0ba0c3fa82b0")
}

db.collection.insertMany()

*3.2版本*
将文档数组插入到一个集合,
db.users.insertMany(
   [
     { name: "bob", age: 42, status: "A", },
     { name: "ahn", age: 22, status: "A", },
     { name: "xi", age: 34, status: "D", }
   ]
)
//会返回文档的操作状态。
{
   "acknowledged" : true,
   "insertedIds" : [
      ObjectId("57420d48cacf0ba0c3fa82b1"),
      ObjectId("57420d48cacf0ba0c3fa82b2"),
      ObjectId("57420d48cacf0ba0c3fa82b3")
   ]
}

db.collection.insert()

将单个或多个文档到一个集合。要插入一个单一的文件,传递文档;插入多个文件,传递文档数组。
eg:
//插入单个对象
db.users.insert(
   {
      name: "sue",
      age: 19,
      status: "P"
   }
)
//返回一个 WriteResult 对象;如果插入错误,会返回错误信息
WriteResult({ "nInserted" : 1 })

//插入数组
db.users.insert(
   [
     { name: "bob", age: 42, status: "A", },
     { name: "ahn", age: 22, status: "A", },
     { name: "xi", age: 34, status: "D", }
   ]
)
//返回 BulkWriteResult 对象
BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 3,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

同样能实现插入效果的方法

  • db.collection.update() 当upsert为true时//第三个参数
  • db.collection.updateOne() 当upsert为true时//第三个参数
  • db.collection.updateMany() 当upsert为true时//第三个参数
  • db.collection.findAndModify() 当upsert为true时**
  • db.collection.findAndModify() 当upsert为true时**
  • db.collection.findOneAndReplace() 当upsert为true时
  • db.collection.save().
  • db.collection.bulkWrite().

db.collection.save()

db.collection.save(doc) 若doc含有_id且在集合中存在,这将会替换集合内的文档(update),不存在则是insert该文档,若不存在_id,则是insert

posted @ 2020-12-03 12:46  vekair  阅读(611)  评论(0编辑  收藏  举报