一、MongoDB增删改查基础命令
查询数据库
show dbs
使用user这个数据库,没有则会创建
use user
查询
db.集合名.find(查询条件[,投影])
db.集合名.findOne(查询条件[,投影])
投影:过滤不需要的数据
db.user.find({name:"n1"},{name:1,age:1;_id:0}) //查询name:1的数据,只保留name,和age
//注意:投影中的条件除了_id,其他属性要保持全是1,或者全是0,不能混用
// <,<=,>,>=,!== 对应 $lt,$lte,$gt,$gte,$ne
// 或,非 对应 $in/$or , &nin
db.user.find({age:{$in[18,19]}}) //查询age=18或者19的数据
db.user.find({$or:{[{age:18},{age:19}]}}) //查询age=18或者19的数据
db.user.find({age:/^正则匹配/})
//where后面可以写函数
db.user.find({$where:function(){
return this.age === 18 && this.name === "张三"
}})
改变
db.user.update(查询条件, 要更新的内容, [,配置选项])
db.user.updateOne(查询条件, 要更新的内容, [,配置选项]) //更新一个
db.user.updateMany(查询条件, 要更新的内容, [,配置选项]) //更新多个,不需要multi配置项
db.user.update({name:"n1"},{name:"n2",age:20,sex:"男"})
//此方法是用【更新的内容】直接替换掉【查询到的数据】,所以需要把数据都写入【更新的内容】中,不然会丢失数据
//$set: 可以修改其中部分数据,并且不丢失数据,但只会匹配一个
db.user.update({name:"n1"},{$set:{name:"n2"}})
//multi 配置项设置为true,可以匹配多个
db.user.update({name:"n1"},{$set:{name:"n2"}},{multi:true})
删除
db.user.remove(查询条件)
db.user.remove({age:20})
增加
insertOne / 一条
db.test.insertOne({"name":"n1","age":21,"sex":"男"})
db.test.insert({"name":"n1","age":21,"sex":"男"})
insertMany / 多条
db.test.insertMany([
{"name":"n1","age":24,"sex":"男"},
{"name":"n2","age":22,"sex":"女"}
])