查询:
db.collection.find({age:28})[2]
:find返回的是数组,可以根据索引获取
db.collection.findOne({age:28}).name
:findOne返回的是对象,可以点语法获取值
db.collection.find().count()
:获取符合条件的文档数量
限制获取文档数量上限:
db.collection.find().skip(10),limit(20)
:获取11-20条区间的数据(skip的值+1开始,limit相当于pagesize)
查询操作符:
$gt $lt $eq ...
:比较查询
db.collection.find({num:{ $gt:40 , $lt : 50 })
:找到num大于40小于50的所有文档
$or
:或者查询:
db.collection.find({$or : [{ sal: { $lt : 1000 } , { sal : { $gt : 2500 }]})
修改:
db.collection.update({name:"沙和尚"},{age:28})
:用{age:28}
对象替换name是沙和尚的完整对象(update默认只改一个)
db.collection.update({name:"沙和尚"},{ $set : { age:20 }},{ multi:true })
:这样update就和updateMany一样了
db.collection.updateMany()
:修改所有符合条件的
修改操作符:
$set
:局部修改
db.collection.upadateOne({ name:"沙和尚" },{ $set : { age:20 }})
:修改name是沙和尚的对象中的age
$unset
删除文档指定属性:
db.collection.upadateOne({ name:"沙和尚" },{ $unset: { address:true }})
:删除name是沙和尚的对象的address属性
$inc
:增加操作符:
db.collection.update({ sal : { $lt : 1000 }} , { $inc : { sal : 400 }})
KaTeX parse error: Expected '}', got 'EOF' at end of input: …name:"bajie"},{push:{ “hobby.movies” : “newMovie” }}) :hobby文档的内嵌文档中的movies数组新增newMovie元素
$addToSet`:向数组内添加元素,如果该元素存在则添加失败
删除:
db.collection.remove({name:"猪八戒"})
:删除name是猪八戒的所有文档对象(默认删除多个,和deleteMany一样)
db.collection.remove({ name:"猪八戒" }, true )
:只删除一个文档对象,和deleteOne一样
db.collection.remove({})
:清空集合(性能差)
db.collections.drop()
:删除集合(性能好)
一般删除并不真实删除,而增加一个isDel字段,每次获取只获取isDel为0的文档
内嵌文档:
查询内嵌文档:
`db.user.find({ “hobby.movies” : “heor” })
排序:
db.collection.find().sort({ sal : 1 , empno : -1 })
:1表示升序,-1表示降序,同时指定多个表示先按第一个排,如果第一个遇到相等的值,则按后面指定顺序排
投影:
db.collection.find({} , {ename :1 ,_id:0}):
find的第二个参数位置设置想显示的内容
schema:
设置所有字段的数据类型
const schema = new Schema({
name:String,
gender:{
type:String.
default:"female"
}
})
model:
var StuModel = mongoose.model("student"/* 集合名,自动变复数 */,schema)
StuModel.create({
name:"孙悟空",
gender:"male"
},function(err){
if(!err){
console.log("插入成功")
}
})