MongoBD的基础CRUD

80 阅读2分钟

//*

@author 没了耳朵的东

*/

插入文档

db..insert()

  • 向集合中插入一个或多个文档
  • 当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id(时间戳+机械码)
  • 该属性用来作为文档的唯一标识
  • _id我们也可以自己指定,如果我们指定了数据库就不会再添加了,如果自己指定_id也必须确保它的唯一性

示例:

一条
db.stus.insert(
{name:"我",age:19,gender:"男"})

---

多条
db.stus.insert([
{name:"我",age:19,gender:"男"},
{name:"你",age:18,gender:"女"},
{name:"她",age:17,gender:"男"}	
]);

查询

db.collection.find()

  • find()用来查询集合中所有符合条件的文档
  • find()可以接收一个对象作为条件参数 { }表示查询集合中所有的文档 {属性:值}查询属性是指定值的文档
  • find()返回的是一个数组 db.collection.findOne()
  • 用来查询集合中符合条件的第一个文档
  • findOne()返回的是一个文档对象 db.collection.find({}).count()
  • 查询所有结果的数量

示例:

db.stus.find().count()
db.stus.findOne({name:"八戒"})
db.stus.find({_id:"hello"});
db.stus.find({name:"八戒",age:18});

修改

db.collection.update(查询条件,新对象)

  • update()默认情况下会使用新对象来替换旧的对象
  • 如果需要修改指定的属性,而不是替换需要“修改操作符”来完成修改
  • $set 可以用来修改文档中的指定属性
  • $unset 可以用来删除文档的指定属性
  • update()默认只会修改一个(multi:true 开启多个修改)

db.collection.updateMany()

  • 同时修改多个符合条件的文档

db.collection.updateOne()

  • 修改一个符合条件的文档

db.collection.replaceOne()

  • 替换一个文档

示例:

db.stus.update(
	{"_id": ObjectId("5f9fa0c2b01700000e0043d2")},
	{$set : { 
		age : 20,
		gender : "女"
	}}
)

db.stus.updateMany(
	{"name": "我"},
	{$set : { 
		age : 20,
		gender : "女"
	}}
)

db.stus.update(
	{"name": "她"},
	{$set : { 
		age : 20,
		gender : "女"
	}},
	{
		multi:true
	}
)

db.stus.replaceOne(

    {name:"大她"},

    {name:"她" ,age:10,gender:"女"}

)

删除 (能不学则不学)

db.collection.remove()

  • 删除符合条件的所有的文档(默认情况下会删除多个)第二个参数传递一个true,则只会删除一个 db.collection.deleteOne() db.collection.deleteMany()
  • remove()可以根据条件来删除文档,传递的方式和find()一样 db.collection.drop()
  • 删除集合 db.dropDatabase
  • 删除数据库

关联查询emm奇怪的查询等

var caseId = db.person.findOne({name:"xxxx"}).caseId;

db.caseInfo.({_id:ObjectId(caseId)});

查询文档时,默认情况是按照_id的值进行排列(升序)

  • sort()可以用来指定文档的排序的规则,sort需要传递一个对象来指定排序规则(1表示升序,-1表示降序)

db.emp.find({}).sort({sal:1,empNo:-1});

在查询时,可以在第二个参数的位置来设置查询结果的投影

db.emp.find({},{ename:1,_id: 0 ,sal:1});