복붙노트

[MONGODB] MongoDB를이 중단 경고 collection.find 옵션을 몽구스

MONGODB

MongoDB를이 중단 경고 collection.find 옵션을 몽구스

collection.find를 사용하여 문서를 조회하는 동안 나는 내 콘솔에서 다음과 같은 경고를 받기 시작했다

이유는이 메시지가 표시되는 방법 나는이 문제를 해결합니까? (가능한 대안)

편집 : 쿼리 추가

Session
        .find({ sessionCode: '18JANMON', completed: false })
        .limit(10)
        .sort({time: 1})
        .select({time: 1, sessionCode: 1});

몽구스 버전 5.2.9

해결법

  1. ==============================

    1.최신 정보:

    최신 정보:

    5.2.10 해제하고 여기에 다운로드 할 수있다.

    사용 mongoose.set ( 'useCreateIndex', TRUE); MongoDB를 기본 드라이버에 createIndex 메소드를 호출 mongooose해야합니다.

    당신이 페이지를 볼 수있는 문서에 대한 추가 정보를 원하시면 https://mongoosejs.com/docs/deprecations

    문제와 그 해결에 대한 추가 정보를 원하시면 https://github.com/Automattic/mongoose/issues/6880

    원래 답변 :

    몽구스 5.2.9 버전은 변경되지 않는 원시 드라이버의 메서드를 호출 할 때 경고 메시지를 던져 추가 된 3.1.3에 기본 MongoDB의 드라이버를 업그레이드했습니다.

    필드 옵션은 더 이상 사용되지 않으며 투사 옵션으로 대체됩니다.

    당신은 프로젝션 필드 옵션을 대체하기 위해 자신의 말에 메이크업 변화에 몽구스 때까지 기다려야합니다. 수정은 5.2.10 출시 될 예정이다.

    시간에 대한 모든 사용 중단 경고를 억제 할 5.2.8으로 돌아갈 수있는.

    npm install mongoose@5.2.8
    

    다른 모든 사용되지 않는 경고를 들어 당신은 케이스별로 사건을 접근해야합니다.

    다른 수집 방법을 사용할 때 다른 사용 중단 경고가 표시됩니다.

    DeprecationWarning: collection.findAndModify is deprecated. Use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead.
    DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
    DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead.
    DeprecationWarning: collection.save is deprecated. Use insertOne, insertMany, updateOne, or updateMany instead.
    DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
    

    기본적으로 모든 findOne * 몽구스 쓰기 방법은 MongoDB를 기본 드라이버에서 사용되지 않는 한 findAndModify 방법을 사용합니다.

    사용 mongoose.set ( 'useFindAndModify', 거짓); MongoDB를 기본 드라이버의 해당 findOne * 메소드를 호출 mongooose해야합니다.

    제거 및 업데이트를 위해 각각 삭제 * 및 업데이트 * 방법과 이러한 호출을 대체합니다.

    용으로 저장하는 것은 * / 업데이트 * 방법 각각 인서트 이러한 호출을 대체합니다.

  2. ==============================

    2.

    mongoose.connect('your db url', {
      useCreateIndex: true,
      useNewUrlParser: true
    })
    

    또는

    mongoose.set('useCreateIndex', true)
    mongoose.connect('your db url', { useNewUrlParser: true })
    
  3. ==============================

    3.버전 5.2.10로 업그레이드 한 후. 옵션 중 아래 사용 할 수 있습니다

    버전 5.2.10로 업그레이드 한 후. 옵션 중 아래 사용 할 수 있습니다

    const mongoose = require('mongoose');
    
    mongoose.connect('mongodb://localhost/test', {
    
      useCreateIndex: true,
      useNewUrlParser: true
    
    })
    .then(() => console.log('connecting to database successful'))
    .catch(err => console.error('could not connect to mongo DB', err));
    

    또는

    const mongoose = require('mongoose');
    
    mongoose.set('useCreateIndex', true);
    
    mongoose.connect('mongodb://localhost/test',{
    
        useNewUrlParser: true
    
    })
    .then(() =>  console.log('connecting to database successful') )
    .catch(err =>  console.error('could not connect to mongo DB', err) );
    
  4. ==============================

    4.당신은 NPM이 mongoose@5.2.8를 설치 할 수 있으며,이 모든 중단 경고를 표시하지 않습니다 이전 버전으로 돌아갈 당신이 도움이 될 것입니다

    당신은 NPM이 mongoose@5.2.8를 설치 할 수 있으며,이 모든 중단 경고를 표시하지 않습니다 이전 버전으로 돌아갈 당신이 도움이 될 것입니다

  5. from https://stackoverflow.com/questions/51916630/mongodb-mongoose-collection-find-options-deprecation-warning by cc-by-sa and MIT license