Node.js 如何从mongoose文档中删除指定字段?
我想从mongoose文档中动态删除一个字段 我尝试过的: 我正在使用Node.js 如何从mongoose文档中删除指定字段?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我想从mongoose文档中动态删除一个字段 我尝试过的: 我正在使用 $unset 当我输入值时 "cars.BMW" 它起作用了。但当我想传递一个参数,它将是一个汽车品牌,然后取消设置它。我试过了 {$unset: {"cars."+brand: " "}} 但是加号是出乎意料的。点表示法不是这样工作的。在js中,可以使用括号表示法从字符串动态创建属性 exports.deleteBrand = function(req, res){ var brand = req.para
$unset
当我输入值时
"cars.BMW"
它起作用了。但当我想传递一个参数,它将是一个汽车品牌,然后取消设置它。我试过了
{$unset: {"cars."+brand: " "}}
但是加号是出乎意料的。点表示法不是这样工作的。在js中,可以使用括号表示法从字符串动态创建属性
exports.deleteBrand = function(req, res){
var brand = req.params.brand;
var query = {};
query["cars." + brand] = "";
Text.update(
{key: req.params.key},
{$unset: query},
function(err){ if(err) res.send(err);
res.json({message: "Car deleted!"});
});
}
如果品牌为“bmw”,则此处的查询变量转换为:{“cars.bmw”:“}
编辑:按op编辑以匹配方法。点表示法不是这样工作的。在js中,可以使用括号表示法从字符串动态创建属性
exports.deleteBrand = function(req, res){
var brand = req.params.brand;
var query = {};
query["cars." + brand] = "";
Text.update(
{key: req.params.key},
{$unset: query},
function(err){ if(err) res.send(err);
res.json({message: "Car deleted!"});
});
}
如果品牌为“bmw”,则此处的查询变量转换为:{“cars.bmw”:“}
编辑:按op编辑以匹配方法。您可以使用解构和模板文本:
{$unset: {[`cars.${brand}`]: " "}}
您可以使用分解结构和模板文字:
{$unset: {[`cars.${brand}`]: " "}}
您可以使用$unset删除feld,示例如下:
User.findOneAndUpdate(
{confirmationKey: req.params.key},
{isConfirmed: true, $unset: { confirmationKey: ""}}, {}, (err, doc) => {
if (err) {
res.status(HttpStatus.BAD_REQUEST).send(StatusGen.getError(err))
} else {
console.log('user = ' + JSON.stringify(doc))
res.send(StatusGen.getSuccess('confirmed'))
}
})
现在字段确认键被删除。您可以使用$unset删除字段确认键,示例如下:
User.findOneAndUpdate(
{confirmationKey: req.params.key},
{isConfirmed: true, $unset: { confirmationKey: ""}}, {}, (err, doc) => {
if (err) {
res.status(HttpStatus.BAD_REQUEST).send(StatusGen.getError(err))
} else {
console.log('user = ' + JSON.stringify(doc))
res.send(StatusGen.getSuccess('confirmed'))
}
})
现在字段确认键被删除。
exports.deleteBrand=function(req,res){var brand=req.params.brand;Text.update({key:req.params.key},{$unset:{cars[brand]:“}},function(err){if(err)res send(err);res.json({message message:“Car deleted!”;})
这是我想用来删除特定品牌的功能。这里写着代币[出乎意料(汽车[品牌])@kirpt:你能发布一段数据吗?谢谢。我尝试了你的代码。它会发送一条消息,表明品牌已被删除,但它仍在数据库中。如果没有数据的可视化,很难说会发生什么和不会发生什么。在你的问题中发布一段数据,并给出一个请求参数“key”的示例,所以我可以进一步帮助您:)exports.deleteBrand=function(req,res){var brand=req.params.brand;Text.update({key:req.params.key},{$unset:{cars[brand]:“”}},function(err){if(err)res.send(err);res.json({message:“Car deleted!”;})
这是我想用来删除某个特定品牌的功能。这里说的是代币[出乎意料(汽车[品牌])@kirpt:你能发布一段数据吗?谢谢。我尝试了你的代码。它会发送一条消息,表明品牌已被删除,但它仍在数据库中。如果没有数据的可视化,很难说会发生什么和不会发生什么。在你的问题中发布一段数据,并给出一个请求参数“key”的示例,因此我可以进一步帮助您:)