启动数据库
mongodb --path:数据库路径
启动客户端
mongo
基本指令
- 显示所有的数据库
show dbs - 显示所有集合
show collections
增加文档
新增一个文档
db.stus.insert({name:"猪八戒",age:28,gender:"男"});
新增一组文档
db.stus.insert([
{name:"沙和尚",age:28,gender:"男"},
{name:"白骨精",age:18,gender:"女"},
{name:"蜘蛛精",age:48,gender:"女"}
])
查询
查询所有文档
db.stus.find();
带条件查询
db.stus.find({name:"白骨精",age:18});
find返回的是一个数组,可以通过下标进行获取
db.stus.find({name:"白骨精",age:18})[0];
findOne返回的不是一个数组,返回的是第一个文档对象
db.stus.findOne({name:"白骨精",age:18});
查询文档数目
db.stus.find({}).count();
修改
db.stus.update(查询条件,新对象)
新对象对将旧对象中的所有数据替换掉
默认只会修改第一个对象
db.stus.update({name:"猪八戒"},{age:18});
修改文档中的单个属性
db.stus.update(
{"_id":ObjectId("632078e44eb8dac8984e07f7")},
{
$set:{
name:"沙僧"
}
}
)
删除文档中的属性
db.stus.update(
{"_id":ObjectId("632078e44eb8dac8984e07f7")},
{ $unset:{
address:"中北大学"
}
}
)
update也可以修改多个属性
db.stus.update(
{"name":"白骨精"},
{
$set:{
address:"hhhhhhh"
}
},
{
multi:true
}
)
updateMany()可以修改多个对象
db.stus.updateMany(
{"name":"白骨精"},
{
$set:{
address:"高老庄"
}
}
)
删除
删除 remove 传递条件方式和move一样 删除所有的符合条件的 默认情况下会删除多个
db.stus.remove({_id:ObjectId("6320564db43a8991618e4811")})
如果remove()第二个参数传递了一个true,则只删除一个
db.stus.remove({name:"白骨精"},true);
如果只传递一个空对象,则清空集合,性能略差,先匹配,后删除
db.stus.remove({});
删除集合
db.stus.drop();
删除数据库
db.dropDatabase();
逻辑删除
db.stus.insert([
{
name:"zbj",
isDel:0
},
{
name:"ts",
isDel:0
},
{
name:"swk",
isDel:0
}
]);
db.stus.updateOne({name:"ts"},{$set:{isDel:1}});
db.stus.find({idDel:0});