Javascript 使用查找中的猫鼬字段
所以我到处寻找,试图找出这个问题,我想我只是错过了一些简单的东西……但我不能完全弄清楚 使用Mongoose,我正在查找一个特定的文档,当找到该文档时,我想看看senderDel字段是否设置为true,然后我将执行删除操作。如果设置为false,则执行更新 代码: console.log(res)返回: 我本以为可以用res.senderDel引用senderDel字段?为什么res.senderDel被认为是未定义的,我如何修改它使其工作?非常感谢您的帮助 编辑:添加我的架构:Javascript 使用查找中的猫鼬字段,javascript,node.js,mongodb,object,mongoose,Javascript,Node.js,Mongodb,Object,Mongoose,所以我到处寻找,试图找出这个问题,我想我只是错过了一些简单的东西……但我不能完全弄清楚 使用Mongoose,我正在查找一个特定的文档,当找到该文档时,我想看看senderDel字段是否设置为true,然后我将执行删除操作。如果设置为false,则执行更新 代码: console.log(res)返回: 我本以为可以用res.senderDel引用senderDel字段?为什么res.senderDel被认为是未定义的,我如何修改它使其工作?非常感谢您的帮助 编辑:添加我的架构: var mes
var messageSchema = new Schema({
sender: {type: ObjectId, ref: 'User'},
senderName: String,
receiver: {type: ObjectId, ref: 'User'},
receiverName: String,
subject: String,
body: String,
sentOn: {type: String, default: moment().format()},
read: {type: Boolean, default: false},
senderDel: {type: Boolean, default: false},
receiverDel: {type: Boolean, default: false}
});
module.exports = mongoose.model('Message', messageSchema);
model.find
函数返回文档数组,而不是单个文档。如果要查找单个文档,请使用model.findOne
或model.findById
:
PMessage.delete = function(msgId, callback)
{
Message.findById(msgId, function(e, res){
if (res){
console.log(res);
if (res.senderDel == true){
console.log("sender deleted...call message remove");
Message.remove({_id: msgId}, callback);
} else {
console.log("res.senderDel is not true");
Message.findByIdAndUpdate(msgId, {$set: {receiverDel: true}}, callback);
}
} else {
console.log("error: " + e);
callback;
}
});
};
你的电脑里有
senderDel
吗?有。我会编辑这篇文章以反映我的模式。哦,你完全正确!使用res[0],senderDel也修复了它。谢谢你的帮助,非常感谢。我将使用您的修复=)
var messageSchema = new Schema({
sender: {type: ObjectId, ref: 'User'},
senderName: String,
receiver: {type: ObjectId, ref: 'User'},
receiverName: String,
subject: String,
body: String,
sentOn: {type: String, default: moment().format()},
read: {type: Boolean, default: false},
senderDel: {type: Boolean, default: false},
receiverDel: {type: Boolean, default: false}
});
module.exports = mongoose.model('Message', messageSchema);
PMessage.delete = function(msgId, callback)
{
Message.findById(msgId, function(e, res){
if (res){
console.log(res);
if (res.senderDel == true){
console.log("sender deleted...call message remove");
Message.remove({_id: msgId}, callback);
} else {
console.log("res.senderDel is not true");
Message.findByIdAndUpdate(msgId, {$set: {receiverDel: true}}, callback);
}
} else {
console.log("error: " + e);
callback;
}
});
};