[英]MongoDB with mongoose: how to push an object to a nested array of documents?
我有我的 MongoDB,遵循这个模式:
const userSchema = new Schema(
{
(...),
therapy_records: {
(...),
daily_record: [
{
therapy_day: '',
date: '',
consumed: '',
limit: '',
goal: '',
morning_timer: '',
},
],
},
)
我正在尝试 addAsNewItemIfArrayExists/createIfNotExists 每次都推送一个新的 daily_record object,但我下面的代码只是添加和 object 如果 daily_record 不存在,则只有一个没有记录的“_id”。 它存在时什么也不做。
任何人都可以说出哪种方法是正确的吗? 谢谢!
const user = await User.findByIdAndUpdate(
userId,
{
therapy_records: {
(..),
daily_record: {
$push: [
{
therapy_day: anyNumber,
date: anyDate,
consumed: anyNumber,
limit: anyNumber,
goal: anyNumber,
morning_timer: anyNumber,
},
],
},
(...),
},
},
{ new: true, upsert: true }
)
您需要使用:
const user = await User.findByIdAndUpdate(
userId,
{
$push: {
'therapy_records.daily_record': {
therapy_day: *anyNumber*,
date: *anyNumber*,
consumed: *anyNumber*,
limit: *anyNumber*,
goal: *anyNumber*,
morning_timer: *anyNumber*,
},
},
},
{ new: true, upsert: true }
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.