删除记录

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();
                });
         });

你可能感兴趣的:(删除记录)