繁体   English   中英

MongoDB 和 mongoose:如何将 object 推送到嵌套的文档数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM