mongo 学习笔记
创建,更新和删除文档
1. 创建
使用insert方法插入文档
db.foo.insert({"bar":"baz"})
使用insertMany 插入多条记录
db.foo.insertMany([{"cnt":1},{"cnt":2}])
2.删除
使用remove() 删除符合条件的文档,但不会删除集合本身
db.foo.remove()
使用deleteOne() 删除满足条件的一条记录
db.foo.deleteOne({})
使用deleteMany() 删除满足条件的多条记录
db.foo.deleteMany({})
3.更新
使用update({},{}) 更新文档
参数1 是条件参数找到要更新的文档
参数2是修改器说明找到的文档用进行哪些修改
修改器
$set
用来指定一个字段的值,如果这个字段不存在则创建
db.users.update({"name":"joe"},{"$set":{"book":"PHP"}})
$unset
删除一个键
db.users.update({"name":"joe"},{"$unset":{"book":1}})
$inc
用于增加或者减少值
db.users.update({"name":"joe"},{"$inc":{"score":10}})
score 键如果不存在则创建
减少10分
db.users.update({"name":"joe"},{"$inc":{"score":-10}})
元素修改器
$push
像已有的数组尾部添加一个元素
如果没有则创建第一个
db.users.update({"name":"joe"},
{$push:{"comments":
{"name":"joe","email":"joe@example.com"}
}})
下面是执行3边后的结果
{
"_id" : ObjectId("584d5494ab50083f4aca88a3"),
"comments" : [
{
"name" : "joe",
"email" : "example@qq.com"
},
{
"name" : "joe",
"email" : "example@qq.com"
},
{
"name" : "joe",
"email" : "example@qq.com"
}
]
}
$slice
保证插入不超过设定的最大长度
db.users.insert({"name":"joe",{
$push:{"email":
$each:['123@qq.com','321@qq.com'],
$slice:-3
}
}})
最多不能超过设定好的长度,修改设置为负数得到最新的3条
addToSet
保证插入不重复的值
db.tester.updateMany({"num":{$gt:10,$lt:20}},{$addToSet:
{"address":"address5"}}
)
如果值里面已经存在重复的值,这个是不会去重