4种不同的方法
静态方法:
- remove(criterion or criteria)
- findOneAndRemove(criterion or criteria)
- findByIdAndRemove(criterion or criteria)
实例方法:
- remove()
在每次测试前创建一个实例
在test里面创建delete_test.js文件:
const assert = require('assert');
const User = require('../src/user');
describe('Deleting a user', () => {
let joe;
//每次测试前先创建一个实例
beforeEach((done) => {
joe = new User({name : 'Joe'});
joe.save()
.then(() => done());
});
});
实例方法remove
//实例方法
it('model instance remove', (done) => {
joe.remove()
.then(() => User.findOne({name : 'Joe'}))
.then((user) => {
assert(user === null);
done();
});
});
静态方法remove
//静态方法
it('class method remove', (done) => {
//删除所有符合条件的记录
User.remove({name : 'Joe'})
.then(() => User.findOne({name : 'Joe'}))//Promise里面调用查找操作
.then((user) => {//返回第二个Promise
assert(user === null);
done();
});
});
静态方法findOneAndRemove
//静态方法
it('class method findOneAndRemove', (done) => {
User.findOneAndRemove({name : 'Joe'})
.then(() => User.findOne({name : 'Joe'}))
.then((user) => {
assert(user === null);
done();
});
});
静态方法findByIdAndRemove
//静态方法
it('class method findByIdAndRemove', (done) => {
//User.findByIdAndRemove({_id : joe._id})
User.findByIdAndRemove(joe._id)
.then(() => User.findOne({name : 'Joe'}))
.then((user) => {
assert(user === null);
done();
});
});