04、MongoDB实战:MongoDB新增文档和删除文档

一:插入文档 insert

// 查看集合的所有操作
db.collections.help()

db.collections.insert(obj)
// insert a document, optional parameters are: w, wtimeout, j
db.collections.insertOne( obj, <optional params> )
// insert multiple documents, optional parameters are: w, wtimeout, j
db.collections.insertMany( [objects], <optional params> )

db.collections.save(obj)

db.user.findAndModify()

db.collections.insert(obj)

只插入,不返回插入的主键_id,支持插入单个或者批量插入。如果_id已经存在则报错。

// 单个插入,BSON支持日期类型
> db.user.insert({
   
     "_id": 1, "username": "monday", "createtime": new Date()})
WriteResult({
   
      "nInserted" : 1 })

> db.user.find()
{
   
      "_id" : 1, "username" : "monday", "createtime" : ISODate("2021-04-12T00:30:38.299Z") }

// 批量插入
> db.user.insert([{
   
     "_id": 1, "username": "a"}, {
   
     "_id": 2, "username": "b"}])

db.collections.insertOne( obj, < optional params > )

插入一条记录,返回值返回插入的主键_id。如果_id已经存在则报错。

> db.user.remove({
   
     })
> db.user.insertOne({
   
     "_id": 1, "username": "monday"})
{
   
     
	"acknowledged" : true,
	"insertedId" : ObjectId("6072b325fef4d53269886180")
}

db.collections.insertMany( [objects], < optional params > )

批量插入,返回插入的主键_id。如果_id已经存在则报错。

> db.user.remove({
   
     })
> db.user.insertMany([{
   
     "_id": 1, "username": "a"}, {
   
     "_id": 2, "username": "b"}])
{
   
     
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("6072b428fef4d53269886181"),
		ObjectId("6072b428fef4d53269886182")
	]
}

db.collections.save(obj)

主键_id如果不存在则保存,如果存在则整体替换。

> db.user.remove({
   
     })
WriteResult({
   
      "nRemoved" : 1 })

> db.user.save({
   
     "_id": 1, "username": "a"})
WriteResult({
   
      "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 1 })
> db.user.find()
{
   
      "_id" : 1, "username" : "a" }

// _id 已经存在,则整体替换
> db.user.save({
   
     "_id": 1, "age": 30})
WriteResult({
   
      "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find()
{
   
      "_id" : 1, "age" : 30 }

db.user.findAndModify()

upsert=true, 不存在则插入,返回null;存在则修改,返回原来的值。

> db.user.remove({
   
     })
WriteResult({
   
      "nRemoved" : 3 })
> db.user.insertMany([{
   
     "_id": 1, "username": "a"}, {
   
     "_id": 2, "username": "b"}])
{
   
      "acknowledged" : true, "insertedIds" : [ 1, 2 ] }
> db.user.find()
{
   
      "_id" : 1, "username" : "a" }
{
   
      "_id" : 2, "username" : "b" }

// 如果不存在则新增
> db.user.findAndModify({
   
      "query": {
   
     "_id": 3}, "update": {
   
      "username": "c"},  "upsert": true })
null
> db.user.find()
{
   
      "_id" : 1, "username" : "a" }
{
   
      "_id" : 2, "username" : "b" }
{
   
      "_id" : 3, "username" : "c" }
// 如果存在则修改
> db.user.findAndModify({
   
      "query": {
   
     "_id": 3}, "update": {
   
      "username": "cc"},  "upsert": true })
{
   
      "_id" : 3, "username" : "c" }
> db.user.find()
{
   
      "_id" : 1, "username" : "a" }
{
   
      "_id" : 2, "username" : "b" }
{
   
      "_id" : 3, "username" : "cc" }

db.collection.update(query, update, addOrUpdate)

addOrUpdate=true, 表示不存在则插入,false表示存在则更新。

> db.user.find()
{
   
      "_id" : 1, "username" : "a" }
{
   
      "_id" : 2, "username" : "b" }
> db.user.update({
   
     "_id" : 3}, {
   
      "_id" : 3, "username" : "c" }, true)
WriteResult({
   
      "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 3 })
> db.user.find()
{
   
      "_id" : 1, "username" : "a" }
{
   
      "_id" : 2, "username" : "b" }
{
   
      "_id" : 3, "username" : "c" }

> db.user.update({
   
     "_id" : 3}, {
   
      "_id" : 3, "username" : "cc" }, true)
WriteResult({
   
      "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find()
{
   
      "_id" : 1, "username" : "a" }
{
   
      "_id" : 2, "username" : "b" }
{
   
      "_id" : 3, "username" : "cc" }


二:删除文档 delete

// 删除满足条件的所有数据
> db.user.remove({
   
     "username": "b"})
// 删除满足条件的第一条数据
> db.user.remove({
   
     "username": "c"}, true)
// 清空集合中的所有文档
> db.user.remove({
   
     })

三:删除集合

db.uesr.drop()

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: