【发布时间】:2017-07-31 11:58:58
【问题描述】:
我正在调试为什么我的 Schema 的 Array 字段的大小只会增加,尽管明确将它们的长度设置为 0 或 = [];。
事实证明,当 Mongoose 向 MongoDB 发送请求时,部分请求具有 $set 后缀,而其他部分则具有 $pushAll,尽管有一些 $setting 值也是数组。
Mongoose 如何选择指定的后缀?如何强制它对所有更新字段使用 $set?
【问题讨论】:
-
您能否提供一些示例代码来说明您如何修改数组属性?
-
@ZachB 我只使用访问array[ index ],赋值array = [],array.push() 和 array.pop()。嗯,写这句话的时候想知道array.push()会不会有什么问题? Mongoose.js 能否以某种方式推断如果我使用了 .push(),那么导致的 MongoDB 请求必须是 $pushAll?
-
@dnickless 问题主要是关于 Mongoose.js 如何以及为什么选择在通过设置新值更新数据和将新值附加到哪个数据库之间修改数据库上的数组已经有。在 Mongoose 文档上找不到任何关于它的信息,所以问。看不到我应该做一个例子的代码。
标签: javascript node.js mongodb mongoose