Node.js 使用Nodejs在mongodb中使用搜索关键字从2个或更多集合中搜索数据
我在mongodb的子集合中使用关键字搜索从2个集合中获取数据。我正在使用聚合函数设置查找和查找。我尝试在管道内部使用$regexMatch。但它不适用于美元和条件。这是我的密码Node.js 使用Nodejs在mongodb中使用搜索关键字从2个或更多集合中搜索数据,node.js,mongodb,express,mongodb-query,Node.js,Mongodb,Express,Mongodb Query,我在mongodb的子集合中使用关键字搜索从2个集合中获取数据。我正在使用聚合函数设置查找和查找。我尝试在管道内部使用$regexMatch。但它不适用于美元和条件。这是我的密码 "$lookup": { "from": "post_cloths", let: { postId: '$_id', search: 'abc' }
"$lookup": {
"from": "post_cloths",
let: { postId: '$_id', search: 'abc' },
pipeline: [
{
$match: {
$expr:
{
$regexMatch: {
input: "$category",
regex: /c/,
options: "i"
},
$and:
[
{ $eq: ["$postId", "$$postId"] },
// { $search: ["$cateogry", 'abc'] }
],
}
}
}
],
"as": "postCloth"
}
没有美元,而且工作正常
问题是——我有两个集合,一个是posts,另一个是PostCloth。我需要返回数据从收集后连同一些搜索关键字的postCloth查找
如果某个键与该集合匹配,lookup将返回该集合,就像从数据库中进行正式搜索一样
我从$and语句中获取数据,但需要搜索所有键以及上面的$eq语句
这里是我需要的输出-----
来自postCloth中包含关键字的post集合的所有数据。所以我需要在lookup语句中使用多个like(就sql而言)语句。我的意思是搜索多个键
提前感谢$regexMatch应该在$and:
{$and:[{$eq:[…]},{$regexMatch:{…}]}
之内。作为旁注,“它不工作”不是一个问题陈述。试着更加精确——你期望什么,你得到什么。“不工作”太含糊了,因为它可能是从严重错误到意外数据格式的任何内容。抱歉@AlexBlex我有更多的解释。希望您能够理解我的问题陈述。@AlexBlex我已将regexMatch放在$and中,如何为该集合上的多个键匹配同一个regex?是什么阻止您使用多个regexMatch,每个字段一个?现在知道了。谢谢