Javascript 如何从Mongoose中的集合中排除一个特定字段?
我有一个带有Mongoose OdMongoose 3.3.1的NodeJS应用程序。我想从我的集合中检索除1以外的所有字段。例如:我有一个集合产品,其中有6个字段,我想选择除字段图像以外的所有字段。我使用了排除方法,但出现了错误。。 这是我的密码Javascript 如何从Mongoose中的集合中排除一个特定字段?,javascript,mongodb,mongoose,mongodb-query,Javascript,Mongodb,Mongoose,Mongodb Query,我有一个带有Mongoose OdMongoose 3.3.1的NodeJS应用程序。我想从我的集合中检索除1以外的所有字段。例如:我有一个集合产品,其中有6个字段,我想选择除字段图像以外的所有字段。我使用了排除方法,但出现了错误。。 这是我的密码 var Query = models.Product.find(); Query.exclude('title Image'); if (req.params.id) { Query.where('_id',
var Query = models.Product.find();
Query.exclude('title Image');
if (req.params.id) {
Query.where('_id', req.params.id);
}
Query.exec(function (err, product) {
if (!err) {
return res.send({ 'statusCode': 200, 'statusText': 'OK', 'data': product });
} else {
return res.send(500);
}
});
但这会返回错误
我也尝试过,var Query=models.Product.find.exclude'title'、'Image';var Query=models.Product.find{}.exclude'title','Image';但是得到同样的错误。如何从Mongoose中的集合中排除一个或两个特定字段。我不知道您从何处了解到该函数。排除函数,因为我在任何文档中都找不到它 但是您可以使用find方法的第二个参数排除字段 以下是一个例子: 此操作将返回类型字段值为food的所有文档,但输出中不包括类型字段 用于当前3.x Mongoose版本中的字段选择 在要排除的字段名前加一个前缀-;因此,在你的情况下: 查询。选择“-Image”; 旁白:在JavaScript中,以大写字母开头的变量应该保留给构造函数。因此,将重命名查询视为代码中的查询。
Model.findOne({ _id: Your Id}, { password: 0, name: 0 }, function(err, user){
// put your code
});
这段代码在我的项目中起作用。谢谢祝你今天愉快。你可以这样做
const products = await Product.find().select(['-image'])
在更新版本的Mongoose中,您可以按如下方式使用它来获取所选字段
user.findById({_id: req.body.id}, 'username phno address').then(response => {
res.status(200).json({
result: true,
details: response
});
}).catch(err => {
res.status(500).json({ result: false });
});
我正在使用异步等待
async (req, res) => {
try {
await User.findById(req.user,'name email',(err, user) => {
if(err || !user){
return res.status(404)
} else {
return res.status(200).json({
user,
});
}
});
} catch (error) {
console.log(error);
}
我在[]中读到了关于排除的内容。正如上面的答案一样,我的图像字段对于不同的产品可能有不同的值。每行他询问mongoose时,您使用的是本机驱动程序。救了我的命..删除user.password不稳定工作..害怕以这种方式上线您也可以通过执行以下操作来排除子文档字段:-Image.width
user.findById({_id: req.body.id}, 'username phno address').then(response => {
res.status(200).json({
result: true,
details: response
});
}).catch(err => {
res.status(500).json({ result: false });
});
async (req, res) => {
try {
await User.findById(req.user,'name email',(err, user) => {
if(err || !user){
return res.status(404)
} else {
return res.status(200).json({
user,
});
}
});
} catch (error) {
console.log(error);
}