t4n*_*hpt 3 mongoose mongodb mongodb-query
例如,我有一个User具有一个字段name(和默认_id字段)的集合,例如。我将一些文档插入此集合。
然后,我想emails向此集合添加一个字段(这是一个用于插入多封电子邮件的数组)。如果它是一个普通字段(不是数组),则可以使用update和$ set 轻松完成。但是,对于该数组,我无法使用updatecommand和$ upsert,$ addToSet,$ push ... 创建新字段,因为该数组以前尚未创建。
我认为这是一种常见的行为,但是我找不到任何方法可以做到这一点。
所有的$set,$addToSet和$push运营商将创建数组如果该字段不存在。确保已添加email到Mongoose模型的架构中,以update使正确发生。
var userSchema = new Schema({
name: String,
emails: [String]
});
Run Code Online (Sandbox Code Playgroud)
如果该emails字段尚不存在或为空,则以下三个选项都具有添加电子邮件数组的相同效果:
var emails = ['foo@bar.com', 'bar@foo.com'];
User.update({_id: id}, {$set: {emails: emails}}, function(err, num) {...});
User.update({_id: id}, {$addToSet: {emails: {$each: emails}}}, function(err, num) {...});
User.update({_id: id}, {$push: {emails: {$each: emails}}}, function(err, num) {...});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4456 次 |
| 最近记录: |