今天我们来聊一下nosql mongodb的模糊查询:
在mysql中需要做模糊查询的时候一般都是用的关键字like
,而mongodb中用的主要是$regex
.
- mysql: select * from 表一 where name like ’%haha%’
- mongodb: db.表一.find({name:{$regex:/haha/}})
那么在聚合函数中如何把上一个博客上讲的链表查询一起串起来呢?我们不废话直接上代码:
db.getCollection('nelnmomclubwpcTransitionCouponRecord').aggregate([
{$lookup: {
from: "表二",
localField: "openId",
foreignField: "socials.openId",
as: "member"
}
},
{
$project: { 'year_data': {$year: "$createdAt"},
'month_data': {$month: "$createdAt"},
'member' :1
}
},
{$unwind: "$member"},
{
$match: {
'$or' : [
{
'member.properties' : {
'$elemMatch': {'name': 'name', 'value': {$regex:"小"}}
}
}
]
}
},
{$sort: {"_id.year_data":-1, "_id.month_data":-1}}
- $unwind; 分割嵌入数组到自己顶层文件
- elemMatch: 嵌套查询(用于多个条件)
- $or 匹配多个键(满足一个即可)