天天看點

Mongoose查詢

mongoose查詢有兩種方式執行

  • 傳callbaock函數結果會傳給函數
  • 不傳callback傳回一個執行個體

傳 遞 c a l l b a c k 方 式 \color{blue}{傳遞callback方式} 傳遞callback方式

articleModel.findOne({articleId:2},function (err,aricle) {
    console.log(aricle)
})
           

不 傳 c a l l b a c k 方 式 \color{blue}{不傳callback方式} 不傳callback方式

let article = articleModel.findOne({articleId:2})
article.exec(function (err,result) {
    console.log(result)
})
           

查詢條件

$or    或關系

  $nor    或關系取反

  $gt    大于

  $gte    大于等于

  $lt     小于

  $lte     小于等于

  $ne            不等于

  $in             在多個值範圍内

  $nin           不在多個值範圍内

  $all            比對數組中多個值

  $regex  正則,用于模糊查詢

  $size   比對數組大小

  $maxDistance  範圍查詢,距離(基于LBS)

  $mod     取模運算

  $near   鄰域查詢,查詢附近的位置(基于LBS)

  $exists    字段是否存在

  $elemMatch  比對内數組内的元素

  $within  範圍查詢(基于LBS)

  $box    範圍查詢,矩形範圍(基于LBS)

  $center       範圍醒詢,圓形範圍(基于LBS)

  $centerSphere  範圍查詢,球形範圍(基于LBS)

  $slice    查詢字段集合中的元素(比如從第幾個之後,第N到第M個元素)
           

例如:查詢articleId大于5的記錄

$gt大于

articleModel.find({articleId:{$gt:5}},function (err,result) {
    console.log(result)
})
           

例:查詢articleId大于5小于10的記錄

articleModel.find({articleId:{$gt:5,$lt:10}},function (err,result) {
    console.log(result)
})
           

例:查詢前10條記錄

skip(n) 跳過n條記錄

limit(m) 查詢m條記錄

articleModel.find(function (err,result) {
    console.log(result)
}).skip(0).limit(10)