//*
@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});