Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Nodejs在mongodb中使用搜索关键字从2个或更多集合中搜索数据_Node.js_Mongodb_Express_Mongodb Query - Fatal编程技术网

Node.js 使用Nodejs在mongodb中使用搜索关键字从2个或更多集合中搜索数据

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' }

我在mongodb的子集合中使用关键字搜索从2个集合中获取数据。我正在使用聚合函数设置查找和查找。我尝试在管道内部使用$regexMatch。但它不适用于美元和条件。这是我的密码

"$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,每个字段一个?现在知道了。谢谢