MongoDB从入门到实战(四):MongoDB 新增文档和删除文档

x33g5p2x  于2021-12-25 转载在 Go  
字(4.5k)|赞(0)|评价(0)|浏览(465)

一:插入文档 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()

相关文章