如何使用 findAndModify()?推数组?
How do I use findAndModify()? to push an array?
我的 userSchema 是:
module.exports = mongoose.model('users', {
userName: String,
messages: Array
});
消息将是:
messages: [{msg: "foo", time: new Date()},{msg: "Bar", time: new Date()}]
如果没有匹配的用户名,或者如果找到,我希望能够创建一个新记录,array.push msg
和 time
到数据库中。
userSchema.findAndModify({
query:{userName: "Test"},
update:{$push: {messages: {msg: "foo", time: new Date()}}},
});
我假设这是正确的,如果没有找到我该如何添加新用户userName
?
假设您的上述查询是正确的,
你上面的查询应该有 upsert:true
喜欢
userSchema.findAndModify({
查询:{用户名:"Test"},
更新:{$push: {messages: {msg: "foo", time: new Date()}}},
新:真实,<br>
更新:真
});
这里new
表示返回更新或插入的对象。
upsert
表示根据记录存在条件插入新记录或更新记录。
现在推送第一条消息时,如果用户名不存在,则会自动插入。
否则如果你想插入用户的其他属性,
你应该使用 update: { $set:
命令。
希望对您有所帮助。
谢谢
我的 userSchema 是:
module.exports = mongoose.model('users', {
userName: String,
messages: Array
});
消息将是:
messages: [{msg: "foo", time: new Date()},{msg: "Bar", time: new Date()}]
如果没有匹配的用户名,或者如果找到,我希望能够创建一个新记录,array.push msg
和 time
到数据库中。
userSchema.findAndModify({
query:{userName: "Test"},
update:{$push: {messages: {msg: "foo", time: new Date()}}},
});
我假设这是正确的,如果没有找到我该如何添加新用户userName
?
假设您的上述查询是正确的,
你上面的查询应该有 upsert:true
喜欢
userSchema.findAndModify({
查询:{用户名:"Test"},
更新:{$push: {messages: {msg: "foo", time: new Date()}}},
新:真实,<br>
更新:真
});
这里new
表示返回更新或插入的对象。
upsert
表示根据记录存在条件插入新记录或更新记录。
现在推送第一条消息时,如果用户名不存在,则会自动插入。
否则如果你想插入用户的其他属性,
你应该使用 update: { $set:
命令。
希望对您有所帮助。
谢谢