MENU

js

mongoose查询笔记

API 概览

  • find - 异步查找表中所有符合查询条件的数据文档。(查找多条)
  • findOne - 异步查找表中第一条符合查询条件的数据文档。(查找一条)
  • findMany - 异步查找表中所有符合查询条件的数据文档。(查找多条)
  • where - 异步查找表中所有符合查询条件的数据文档,以链式的方式进行查找。(查找多条)
  • findById - 根据 id 异步查询指定数据文档(查找一条)

例子

/* 三个效果等价相同的写法 */
model.find().where("name","Yesifang").then(docs=>console.log(docs))
model.find().where("name",/^Yesifang$/).then(docs=>console.log(docs))
model.find().where("name").equals("Yesifang").then(docs=>console.log(docs))
/* 链式查询 */
model.find()
    .where("name").equals("Yesifang")
    .where("age").gte(18).lte(150)
    .then(docs=>console.log(docs))
model.find({ // 以上链式查询的等价于
    name:"Yesifang",
    age:{$gte:18,$lte:150}
}).then(docs=>console.log(docs))

查询条件

直接条件

let conditions1 = { // 查询name字段值为"Yesifang"的数据文档
    name:"Yesifang"
}
let conditions2 = { // 查询age字段值为20的数据文档
    age:20
}
let conditions3 = { // 查询name字段值为"Yesifang",并且age字段的值为20的数据文档
    name:"Yesifang",
    age:20
}

比较条件

  • $eq - 等于(equal)
  • $ne - 不等于(not equal)
  • $gt - 大于(great then)
  • $gte - 大于等于(great then equal)
  • $lt - 小于(less then)
  • $lte - 小于等于(less then equal)
  • $in - 存在(in)
  • $nin - 不存在(not in)

*以上使用方式均为: 字段:{运算符 + 表达式}

Read More