find()Model.find(filter[,projection][,options][,callback])参数1:过滤查询条件使用JSON文档的格式,语法为JSON文档与MongoDBshell一致。{field1:value1,field2:{operator:value2}...}1。查找所有Model.find()Model.find({})2。准确找到Model.find({author:'dora'})3。使用运算符比较相关运算符符号说明$eq等于指定值$ne不等于指定值$gt大于指定值$gte大于等于指定值$lt小于指定值值$lte小于或等于指定值$in匹配查询数组中指定的任何值$nin不匹配查询数组中指定的任何值Model.find({age:{$in:[16,18]}})返回age字段等于16或18的所有文档。逻辑相关运算符符号描述$and满足数组指定的所有条件$nor不满足数组指定的所有条件array$or满足数组中指定的条件之一$not逆向查询,返回不满足指定条件的文档//相关语法{$and:[{expression1},{expression2},...,{expressionN}]}{$nor:[{expression1},{expression2},...,{expressionN}]}{$or:[{expression1},{expression2},...,{expressionN}]}{field:{$not:{}}}逻辑运算符中的比较包括字段不存在的情况。model.find({age:{$not:{$lte:16}}})//返回age字段大于16或不存在的文档字段相关运算符符号说明$exists匹配指定字段的文档{field:{$exists:}}$type返回字段属于指定类型的文档{field:{$type:}}4、嵌套对象字段的查找数据如下{name:{first:"dora",last:"wang"}}精确匹配,顺序和字段必须一致。model.find({name:{last:"wang",first:"dora"}})//[]找不到数据使用点语法匹配嵌套字段,其中字段名必须用引号括起来。model.find({'name.last':'wang'})5.数组字段的搜索符号描述$all匹配包含查询数组中指定的所有条件的数组字段$elemMatch匹配数组字段中的一个值满足$elemMatch中指定的所有条件$size匹配数组字段的长度且指定大小的文档数据如下{year:[2018,2019]}{year:[2017,2019,2020]}{year:[2016,2020]}要在数组中找到至少一个值,可以使用精确搜索方法{field:value}Model.find({year:2019});//{"_id":...,"year":[2018,2019]}//{"_id":...,"year":[2017,2019,2020]}在数组中查找多个值使用$all查找documentModel.find({year:{$all:[2019,2020]}});//{"_id":...,"year":[2017,2019,2020]}算子组合查询可以通过算子过滤,{:{operator:value}},比如$inModel.find({year:{$in:[2018,2020]}});//{"_id":...,"year":[2018,2019]}//{"_id":...,"year":[2017,2019,2020]}使用算子组合查询{:{operator1:value1,operator2:value2}}Model.find({year:{$gt:2019,$lt:2018}});//{"_id":...,"year":[2017,2019,2020]}//{"_id":...,"year":[2016,2020]}数组字段包含满足查询条件的元素,不同的元素可以满足条件条件也可以是同一个元素满足所有条件,如上例,一个值满足条件大于2019,另一个值满足条件小于2018$elemMatch单个字段值满足所有查询条件$elemMatch查找数组字段中的值,同时满足文档的所有条件。{field:{$elemMatch:{,,...}}}Model.find({year:{$elemMatch:{$gt:2016,$lt:2018}}})//{"_id":...,"year":[2017,2019,2020]}数组下标查询Model.find({'year.1':{$gt:2019}})//{"_id":...,"year":[2016,2020]}数组year的第二个值大于2019。6.数组对象的搜索数据如下{author:[{name:"dora",age:18},{name:"wang",age:16}]}精确查询精确匹配,顺序和字段必须一致。Model.find({author:{name:"dora",age:18}})点语法查询Model.find({'author.age':{$gte:18}})$elemMatch同时满足所有查询条件的Model.find({"author":{$elemMatch:{name:'dora',age:{$lt:18}}})//[]参数二:projection指定要包含或排除哪些文档字段(也称为For查询“projection”),必须同时指定包含或排除,并且不能混合使用,_id除外。mongoose中有两种指定方式,字符串指定和对象形式指定。指定字符串时,在排除字段前加-号,只写要包含的字段名。Model.find({},'age');Model.find({},'-name');指定对象形式时,包含1,不包含0。Model.find({},{age:1});Model.find({},{name:0});使用select()方法定义Model.find().select('nameage');Model。find().select({name:0});参数三:options//实现Model.find(filter,null,options)Model.find(filter).setOptions(options)Model.find(filter).