javascript - 如何 $push:在使用 $inc 增加 id 后进入 mongo-db
问题描述
在插入 Mongodb 之前,我需要增加 ID 的值。我试过 $inc 但它不起作用。这是我的猫鼬模式
const subSchema = new mongoose.Schema({
id:{
type:Number,
default:1
},
time : { type : Date, default: Date.now },
description:{
type:String,
required:true
}
})
const activitySchema = new mongoose.Schema({
userid:{
type:String,
required:true
},
activity:[subSchema]
})
我正在尝试更新 subSchema 中的 id,稍后在 activitySchema 中使用
这就是 id 最初所做的。
findOneAndUpdate({userid:userid}, { $push: { activity: {description:"Test",$inc:{ id: 1} } } })
正在插入文档,但默认值为 1
当我从 id 中删除 default:1 时,文档正在更新而没有 id
有什么简单的解决方案吗?
解决方案
它不可能在一个查询中完成。相反,您可以分两步完成:
const user = await Activity.findOne({ userid });
// ^^^^^ put your collection name here
if (user) {
const activityCount = user.activity.length;
await user.updateOne({ $push: { activity:
{ id: activityCount + 1, description: 'Dolor sit amet' }
}})
}
推荐阅读
- excel - Using SUM function in cell formula yields #NAME error
- powershell - powershell query - how many OR can i use?
- javascript - 图表js onclick函数调用
- python - django 中的异常:查询集没有属性用户
- c# - 将对象列表绑定到 WPF listviewitem
- reactjs - TypeError:未定义不是一个对象(评估'state.routes.find')
- android-studio - 无法在我的自动完成文本视图中显示条码扫描文本
- python - 如何正确安装geopandas?
- reactjs - 如何在反应中添加 n 封电子邮件?
- chatbot - MS Teams - Bot 中的深层链接删除了聊天选项卡