Sha*_*oon 5 upsert mongoose mongodb node.js
我正在使用猫鼬,我的架构如下所示:
var WalletSchema = new Schema({
accounts: [String]
});
Run Code Online (Sandbox Code Playgroud)
我的查询(Node.js)看起来像:
Wallet.update {accounts: account}, {$addToSet: {accounts: account}}, {upsert: true}, (err, updWallet) ->
asyncCb err
Run Code Online (Sandbox Code Playgroud)
但是,wallets我的数据库中没有任何内容,我希望这会更新。它不是。相反,它返回一个错误:MongoError: Cannot apply $addToSet modifier to non-array
难道我做错了什么?
Mongodb 3.2 现在支持此行为
来自 MongoDB 文档: 如果要更新的文档中不存在该字段,则 $addToSet 将创建具有指定值的数组字段作为其元素。
https://docs.mongodb.org/manual/reference/operator/update/addToSet/
您必须在首次创建时使用空帐户数组初始化帐户文档,或者$push在第一次$addToSet失败时使用。$push如果该字段不存在,则创建一个新字段,而事实$addToSet并非如此。
| 归档时间: |
|
| 查看次数: |
7208 次 |
| 最近记录: |