Mongoose $ push用一个元素的新数组替换整个数组

时间:2018-07-12 19:36:02

标签: arrays mongodb mongoose updates mongoose-schema

按照标题,我将属性books定义为

books: [{
  ref: 'Book',
  type: Schema.Types.ObjectId,
}]

我正在尝试用

进行更新
await MyModel.updateOne({ id: myId }, { $push: { books: book._id } })

但每次调用上述更新时,整个数组都会替换为一个元素的数组(“ element”是最后推送的一个)。因此,我最终遇到了类似的东西

"books": [
    {
        "$oid": "5b47aa8ae2d927da983733cb"
    }
]

总是只有一个元素。

正在发生这种情况

  • 节点8.10
  • 猫鼬5.14

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您可以尝试更新

public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {



    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.MONTH, month);
    c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
    String date = DateFormat.getDateInstance().format(c.getTime());
    attendDate = findViewById(R.id.attend_date);
    leaveDate = findViewById(R.id.leave_date);

    if (startOrEnd) {
        attendDate.setText(date);
    } else {
        leaveDate.setText(date);
    }
}