gpt4 book ai didi

node.js - 如何更新 Mongoose 数组中的所有文档并创建它们(如果它们不存在)?

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:52 25 4
gpt4 key购买 nike

我有一个要更新的文档的 id 数组,问题是如果它们不存在,我希望能够创建它们。

这是我的架构:

const CarRanking= new Schema({ 
id:{
type: String,
lowercase: true,
unique: true,
required: true
},
count:{
type:Number,
default:1
},

},
{
timestamps: true
});

我的查询如下所示:

let arrIds = ['car1','car2','car3'];
TestRanking.updateMany({
id : { "$in": arrIds}
},{
//<<======= This failed to create if they dont exists
// because i don't know how to put
// the corresponding id from the arrIds
$inc : {count: 1}
},{safe: true, upsert: true, new : true})
.exec()
.then((data)=>{
res.json({data});
})
.catch(err=>{
console.log(err);
next(err)})
}

当它们不存在时我如何完成创建

最佳答案

此 upsert 标志只会在 mongodb 中创建一个文档,为此,您需要使用 bulkwriteupdateone

例如:

db.collection.bulkWrite( [
{ updateOne :
{
"filter" : {id : { "$in": arrIds}},
"update" : <Your Doc>,
"upsert" : true
}
}
] )

关于node.js - 如何更新 Mongoose 数组中的所有文档并创建它们(如果它们不存在)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833311/

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