レコードの削除

2257 ワード

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