我正在使用 Mongoose ,我的架构如下所示:
var WalletSchema = new Schema({
accounts: [String]
});
我的查询(Node.js)如下:
Wallet.update {accounts: account}, {$addToSet: {accounts: account}}, {upsert: true}, (err, updWallet) ->
asyncCb err
但是,我的数据库中没有任何
wallets
,因此我希望这会提高。它不是。而是返回错误:MongoError: Cannot apply $addToSet modifier to non-array
难道我做错了什么?
最佳答案
您或者必须在首次创建时使用空的帐户数组初始化帐户文档,或者如果第一个$push
失败,则使用$addToSet
。如果字段不存在,则$push
创建一个新字段,而$addToSet
则不创建一个新字段。