var db = require('../db');
var post = db.Schema({
msgtype: { type: Number },
msgtext: { type: String },
sender: { type: String },
recipients: { xxxxxx },
created_on: { type: Date }
});
module.exports = db.model('Post', post);
我希望字段,收件人,是类型 - 数组 { 电子邮件:{type:String}, 读:{type:Boolean} }。
答案 0 :(得分:1)
只需将recipients
声明为数组:
...
recipients: [{
email: String,
read: Boolean
}]
...
要在recipient
字段中搜索email
项,请执行:
Post.findOne({'recipients.email': 'peter.w@gmail.com'}, function (err, doc) {
if (!err) console.log(doc);
});
要更新项目,请执行以下操作:
Post.findOneAndUpdate(
{ 'recipients.email': 'peter.w@gmail.com' },
{
'$set': {
'recipients.$.read': true
}
},
function(err, doc) {
});
这种方法会将true
设置为所有recipients
,其电子邮件是找到的第一个文档的peter.w@gmail.com
。