7.1 获取所有数据,返回是一个数组

1
this.ctx.model.Article.find()

7.2 获取一个数据,返回是一个对象

1
this.ctx.model.Article.findOne()

###

7.3 条件查询

1
this.ctx.model.Article.find(conditions,callback);

condition有以下几种类型

7.3.1 根据具体数据进行查询

1
this.ctx.model.Article.find({_id:5c4a819fb87ba4002a47bc4f,title:"123"},callback);
  • 返回_id为5c4a819fb87ba4002a47bc4f,title为123的结果

7.3.2 条件查询

“$lt” 小于
“$lte” 小于等于
“$gt” 大于
“$gte” 大于等于
“$ne” 不等于
1
this.ctx.model.Article.find({“sort”:{ $get:18 , $lte:30 });
  • 返回Article表中sort 大于等于18并小于等于30的结果

7.3.3 或查询 OR

“$in” 一个键对应多个值
“$nin” 同上取反, 一个键不对应指定值
“$or” 多个条件匹配, 可以嵌套 $in 使用
“$not” 同上取反, 查询与特定模式不匹配的文档
1
this.ctx.model.Article.find({"title":{ $in:[20,21,22."haha"]} );
  • 返回Article表中title等于20或21或21或”haha”的结果
1
this.ctx.model.Article.find({"$or" :  [ {"age":18} , {"name":"wxw"} ] });
  • 返回Article表中age等于18或 name等于”wxw”的结果

7.3.4 类型查询(”$exists”条件判定)

1
2
3
this.ctx.model.Article.find({name: {$exists: true}},function(error,docs){
//返回Article表中所有存在name属性的结果
});
1
2
3
this.ctx.model.Article.find({telephone: {$exists: false}},function(error,docs){
//返回Article表中所有不存在telephone属性的结果
});

7.3.5 匹配正则表达式查询

MongoDb 是使用 Prel兼容的正则表达式库来匹配正则表达式

1
this.ctx.model.Article.find( {"name" : /joe/i } );
  • 返回Article表中name为 joe 的结果, 并忽略大小写

7.3.6 查询数组

1
this.ctx.model.Article.find({"array":10} );
  • 返回Article表中array(数组类型)键中有10的文档, array : [1,2,3,4,5,10] 会匹配到
1
this.ctx.model.Article.find({"array[5]":10}  );
  • 返回Article表中array(数组类型)键中下标5对应的值是10, array : [1,2,3,4,5,10] 会匹配到
1
this.ctx.model.Article.find({"array":[5,10]});
  • 返回Article表中查询匹配array数组中既有5又有10的结果
1
this.ctx.model.Article.find({"array":{$size : 3} });
  • 返回Article表中查询匹配array数组长度为3 的的结果
1
this.ctx.model.Article.find({"array":{$slice : 10} });
  • 返回Article表中查询匹配array数组的前10个元素
1
this.ctx.model.Article.find({"array":{$slice :  [5,10]} });
  • 返回Article表中查询匹配array数组的第5个到第10个元素

7.3.7 where

用它可以执行任意javacript语句作为查询的一部分,如果回调函数返回 true 文档就作为结果的一部分返回

1
2
this.ctx.model.Article.find( {"$where" :  "this.x + this.y === 10" } );
this.ctx.model.Article.find( {"$where" : " function(){ return this.x + this.y ===10; } " } )
  • 其中this为数据表中的数据,上述返回Article表中属性x+属性y=10的所有数据