gpt4 book ai didi

javascript - 使用 mongoose 查询 mongodb 集合中的正则表达式

转载 作者:行者123 更新时间:2023-12-03 01:35:28 25 4
gpt4 key购买 nike

我正在尝试使用regex查询mongoose,我已经看到其他帖子有类似的建议,但我仍然无法弄清楚,并且还收到新的错误而不是仅仅返回一个空文档

我正在尝试查询包含,而不是需要精确的值来获取结果

对于我的路线,我有这样的东西

router.get('/:name/:value', (req, res, next) => {
const o = {};
const r = `.*${req.params.value}.*`;
// the above gives me error such as CastError: Cast to string failed for value "{ '$regex': '.*y.*' }" at path "username" for model "Model"

o[req.params.name] = { $regex: { $regex: r }, $options: 'i' };
Model.find(o, (err, doc) => {
if (err) return next(err);
res.send('success');
});
});

有人可以帮我解决我做错的事情吗?

预先感谢您的帮助。

最佳答案

假设下面是您的模型

//Employee.js

import mongoose from 'mongoose';
const Employee = mongoose.Schema({
Name: { type: String, default: "" },
Age: { type: Number, default: 0 },
Email: { type: String, default: "" },
}, { collection: 'Employee' });
export default mongoose.model('Employee', Employee);

您的路由器必须如下所示

var Employee = require('../path/to/Employee.js');

router.get('/name/:value', (req, res, next) => {
let query = {
Name: {
$regex: req.params.value,
$options: "i"
}
};
Employee.find(query, (err, docs) => {
if (err) return next(err);
console.log("Documents-->", docs)
res.send('success');
});
});

您无需为名称提供单独的参数,只需像上面那样进行查询即可

关于javascript - 使用 mongoose 查询 mongodb 集合中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com