查詢:
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("插入成功")
}
})