0%

mongoDB 查询操作符表

mongoDB find

比较符

字符 操作含义 备注
$lt 小于 <
$lte 小于等于 <=
$gt 大于 >
$gte 大于等于 >=
$ne 不等于 !=
$in 在范围内 include {age: {$in: [18,20]}} 注意是数组
$nin 不在范围内 !include 参考$in
$all 完全匹配 { tags: { $all: [tagId] } } 后面接数组
$regex 正则匹配 find({‘name’: {$regex: ‘^M.*}) 以 M 开头的名字
$exists 是否存在 {name:{$exists:true}} 查找 name 存在的 doc
$type 类型判断 {age: {$type: Number}}
$text 文本查询 {$text: {‘$search’: ‘Mike’}} text类型的属性中包含Mike字符串
$or 或操作 {$or:[{‘name’:’chen’},{‘name’:’wang’}]} or 后面接数组
$and 与操作 {$and:[{‘name’:’chen’},{‘name’:’wang’}]} and 后面接数组

$in$all 的区别:

$in$all后面都是接数组,但是指向的范围不同

1
2
3
// 查询topic.tags.includes(copyTagId)的模板,$all 是完全匹配
// 也就是说 topic.tags>= $all 后面的数组
const topicList = await ctx.model.Topic.find({ tags: { $all: [copyTagId] } });
1
2
3
// 查询['1', '2', '3'].includes(topic.name)的模板
// 也就是数据库中的数据等`$in` 后面数组中任何之一都可以,有点像$or
const topicList = await ctx.model.Topic.find({ name: { $in: ['1', '2', '3'] } });