提问人:Gregory 提问时间:11/16/2023 更新时间:11/16/2023 访问量:8
“message”: “MongoServerError:未知的顶级运算符:$${match}price$${match}
"message": "MongoServerError: unknown top level operator: $${match}price$${match}
问:
“message”: “MongoServerError:未知顶级运算符:$${match}price$${match}。如果您的字段名称以“$”符号开头,请考虑使用 $getField 或 $setField。
我打算使用 Mongoose 从 MongoDB 数据库中获取所有产品,并能够根据请求中的查询参数过滤结果。
这一行 ,应该将 、 、 和 in 的实例替换为它们的 MongoDB 对应项。 queryStr = queryStr.replace(/\b(gte|gt|lte|lt|)\b/g, (match) => '$${match}');
gte
gt
lte
lt
queryStr
但是,似乎存在一个问题,因为我在尝试使用MongoDB的查询运算符时不断收到上面的错误消息。
答:
0赞
Gregory
11/16/2023
#1
一个朋友刚刚给我发了一篇文章,上面写着,javaScript模板文字用反引号(')表示,而不是单引号或双引号。因此,正确的行应该是:
queryStr = queryStr.replace(/\b(gte|gt|lte|lt)\b/g, (match) =>
$${匹配});
不是这个queryStr = queryStr.replace(/\b(gte|gt|lte|lt|)\b/g, (match) => '$${match}');
这将正确地将 queryStr 中的比较运算符替换为它们的 MongoDB 对应符。谢谢大家。
评论