Mongo db在删除后显示记录

时间:2017-03-27 14:53:59

标签: angularjs node.js mongodb mongoose

我在前端有一个带有后端节点的Angular,在那里我显示用户可以删除和编辑的用户消息。 当我删除一条消息时,我还删除了用户数组中的所有记录,并且在前端工作正常,没有删除的消息显示,但是当我签入数据库时​​,对于用户记录,仍然有一个在用户的messages数组中记录。

所以,当我做db.users.find()

我找到删除了所有邮件的用户:

"messages" : [ ObjectId("58d921cacca7c04abd100344") ], "__v" : 9 

这是messages model我从数据库中删除消息记录。

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var User = require('./user');

var schema = new Schema({
    content: {type: String, required: true},
    user: {type: Schema.Types.ObjectId, ref: 'User'}
});

schema.post('remove', function (message) {
    User.findById(message.user, function (err, user) {
        user.messages.pull(message);
        user.save();
    });
});

module.exports = mongoose.model('Message', schema);

这是user model

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongooseUniqueValidator = require('mongoose-unique-validator');

var schema = new Schema({
    firstName: {type: String, required: true},
    lastName: {type: String, required: true},
    password: {type: String, required: true},
    email: {type: String, required: true, unique: true},
    messages: [{type: Schema.Types.ObjectId, ref: 'Message'}]
});

schema.plugin(mongooseUniqueValidator);

module.exports = mongoose.model('User', schema);

当我检查邮件集合时,根本没有邮件。 虽然它在前端工作正常,但我想知道为什么在为用户删除了所有消息后,它仍然在数据库中显示该记录?

0 个答案:

没有答案