programing

MongoParseError: useCreateIndex, useFindAndModify 옵션은 지원되지 않습니다.

goodsources 2023. 3. 12. 10:46
반응형

MongoParseError: useCreateIndex, useFindAndModify 옵션은 지원되지 않습니다.

실행하려고 했는데 제목과 같은 오류가 발생하더군요.그리고 이게 내 코드야

const URI = process.env.MONGODB_URL;

mongoose.connect(URI, {
   useCreateIndex: true, 
   useFindAndModify: false, 
   useNewUrlParser: true, 
   useUnifiedTopology: true 
}, err => {
   if(err) throw err;
   console.log('Connected to MongoDB!!!')
})

.env에서 MONGODB_URL을 설정했습니다.

MONGODB_URL = mongodb+srv://username:<password>@cluster0.accdl.mongodb.net/website?retryWrites=true&w=majority

어떻게 고치죠?

Mongoose 6.0 문서:

useNewUrlParser, useUnifiedTopology, useFindAndModify 및 useCreateIndex는 지원되지 않게 되었습니다.Mongoose 6은 항상 useNewUrlParser, useUnifiedTopology 및 useCreateIndex가 true, useFindAndModify가 false인 것처럼 동작합니다.코드에서 이러한 옵션을 삭제해 주세요.

저도 같은 문제가 있었습니다만, useCreateIndex 를 삭제하면, useFindAndModify 를 사용하면 문제가 해결됩니다.

const URI = process.env.MONGODB_URL;

mongoose.connect(URI, {

useNewUrlParser: true, 

useUnifiedTopology: true 

}, err => {
if(err) throw err;
console.log('Connected to MongoDB!!!')
});

그것은 나에게 효과가 있었다.

사용 중지 경고 옵션 없음 경고 옵션

useNewUrlParser,useUnifiedTopology,useFindAndModify , , , , 입니다.useCreateIndex는 지원되지 않게 되었습니다. Mongoose 6처럼 합니다.useNewUrlParser,useUnifiedTopology , , , , 입니다.useCreateIndex입니다.또, 「」useFindAndModify.코드에서 이러한 옵션을 삭제해 주세요.

src --> https://mongoosejs.com/docs/migrating_to_6.html#no-more-deprecation-warning-options

// No longer necessary:
mongoose.set('useFindAndModify', false);

await mongoose.connect('mongodb://localhost:27017/test', {
  useNewUrlParser: true, // <-- no longer necessary
  useUnifiedTopology: true // <-- no longer necessary
});

저도 같은 문제가 있어요.인스태드

mongoose.connect(URI, {
   useCreatendex: true, 
   useFindAndModify: false, 
   useNewUrlParser: true, 
   useUnifiedTopology: true 
}, err => {
   if(err) throw err;
   console.log('Connected to MongoDB!!!')
})

이것을 시험해 보세요.

mongoose.connect(URI,
    err => {
        if(err) throw err;
        console.log('connected to MongoDB')
    });

이 오류는 새로운 버전의 mongoose 6.0.6이 원인입니다.

설명서에 기재되어 있는 바와 같이:

사용 중지 경고 옵션 없음 경고 옵션

useNewUrlParser,useUnifiedTopology,useFindAndModify , , , , 입니다.useCreateIndex는 지원되지 않게 되었습니다. Mongoose 6처럼 합니다.useNewUrlParser,useUnifiedTopology , , , , 입니다.useCreateIndex입니다.또, 「」useFindAndModify.코드에서 이러한 옵션을 삭제해 주세요.

또한 새로운 버전에는 몇 가지 중요한 변경 사항이 있습니다.

상세한 것에 대하여는, https://mongoosejs.com/docs/migrating_to_6.html#no-more-deprecation-warning-options 를 참조해 주세요.

import mongoose from 'mongoose';
    
    const db = process.env.MONGOURI;
    
    const connectDB = async () => {
      try {
        console.log(db);
        await mongoose.connect(`${db}`, {
          useNewUrlParser: true,
          useUnifiedTopology: true,
        });
        console.log('MongoDB connected');
      } catch (error) {
        console.log(error.message);
        process.exit(1);
      }
    };
    
    
    export default connectDB;

여기에 이미지 설명 입력

useNewUrlParser와 useCreateIndex를 코멘트 했을 때 효과가 있었습니다.

usecreateindex 삭제, usefindandmodify 옵션

const URI = process.env.MONGODB_URL;

mongoose.connect(URI, {
   useNewUrlParser: true, 
   useUnifiedTopology: true 
}, err => {
   if(err) throw err;
   console.log('Connected to MongoDB!!!')
})
Mongoose.connect(
    DB_URL,
    async(err)=>{
        if(err) throw err;
        console.log("conncted to db")
    }
)
const URI = process.env.MONGODB_URL;

mongoose.connect(URI, {
   //useCreatendex: true, 
   //useFindAndModify: false, 
   useNewUrlParser: true, 
   useUnifiedTopology: true 
}, err => {
   if(err) throw err;
   console.log('Connected to MongoDB!!!')
}) 

새로운 mongodb 버전에서는 useCreateIndex: true, useFindAndModify: false, useNewUrlParser: true, useUnifiedTopology: true를 사용할 필요가 없습니다.

//날짜/버전 (08-1989)에서 동작하고 있습니다.

const mongoose = require('mongoose');
var url = "mongodb+srv://username:<password>@cluster0.accdl.mongodb.net/website? 
retryWrites=true&w=majority";
mongoose.connect(url, function(err, db) {
    if (err) throw err;
        console.log("Database created!");
        db.close();
});

데이터베이스 연결을 확인하려면 다음과 같이 하십시오.

const mongoose = require("mongoose");
const url = ... /* path of your db */;

//to connect or create our database
mongoose.connect(url, { useUnifiedTopology : true, useNewUrlParser : true , }).then(() => {
   console.log("Connection successfull");
}).catch((e) => console.log("No connection"))

useNewUrlParser,useUnifiedTopology,useFindAndModify , , , , 입니다.useCreateIndex는 지원되지 않게 되었습니다.

기본적으로 그 오브젝트를 삭제하기만 하면 됩니다.

버전 v6에서는 useCreateIndex, useFindAndModify 옵션이 지원되지 않습니다.

try {
    await mongoose.connect(process.env.MONGODB_URL, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
    });
    console.log("Connect successfully!");
} catch (error) {
    console.log("Connect Failure!");
}
const URI = process.env.MONGODB_URL;
mongoose.connect(URI, { useUnifiedTopology: true } 
);

const connection = mongoose.connection;
connection.once('open', () => {
    console.log("MongoDB database connection established successfully");
} )

여기에 이미지 설명 입력

나도 같은 실수를 했다."useCreateIndex: true"를 삭제하기만 하면 동작하지만, 처음부터 mongoDB 서비스가 로컬 머신에서 실행되고 있는지 확인합니다.brew services start mongodb-community@5.0 :) #HappyCoding

mongoose.connect(URL,{
    }).then(()=>{
     console.log('database connected')
}).catch(err=>{
    console.log('database not connected',err)
})

같은 경험을 했습니다만, (useFindAndModify: false)와 (useCreateIndex)를 모두 생략한 것이 전부였습니다.그 이유는 mongoose 버전이 이 중 어느 것도 지원하지 않았기 때문입니다.

분명 이게 너에게 효과가 있을 거야.

asPromise()연결 방법 Mongoose 연결은 더 이상 사용할 수 없습니다.즉,await mongoose.createConnection(uri)더 이상 Mongoose가 연결될 때까지 기다리지 않습니다.사용하다mongoose.createConnection(uri).asPromise()대신.

// 아래는 Mongoose 6에서는 사용할 수 없습니다.

await mongoose.createConnection(uri);

// 대신 실행

 await mongoose.createConnection(uri).asPromise();

const Connect(연결)DB = async ( ) = > { try{ const con = wait mongoose . connect("mongodb + srv : // MahmoudReda : 01102306392@cluster0.eqhn13z.mongodb.net /?retryWrites = true&w } ), {useNewUrecomparser: true, ///useNewUrateIndex: true} 콘솔로그 연결이 안정적입니다.

이 코드는 정상적으로 동작하고 있으며 useNewUrlParser 및 useCreateIndex는 지원되지 않습니다.

/* Mongoose Setup */
const PORT = process.env.PORT || 6001;
mongoose.set("strictQuery", false); // answer
mongoose.connect(process.env.MONGO_URL)
    .then(() => {
        app.listen(PORT, () => console.log(`Server Port:${PORT}`));
    })
    .catch(error => console.log(`${error} did not connect`));

2021년 10월 27일 캐치하지 않으면 작동하지 않습니다.몽고 인맥에 대한 최신 정보를 얻기 위해 이 글을 올렸습니다.

    const uri = process.env.ATLAS_CONNECTION;
    mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: 
    true });

    const connection = mongoose.connection;


    try{
    connection.once('open', () => {
        console.log("MongoDB database connection established 
     successfully");
    })
    } catch(e) {
    console.log(e);
    }

   function close_connection() {
    connection.close();
   }

접속 확립

새로운 mongoose 버전에는 이미 디폴트 옵션이 있기 때문에 이 옵션을 삭제하기만 하면 완벽하게 동작합니다.

언급URL : https://stackoverflow.com/questions/68958221/mongoparseerror-options-usecreateindex-usefindandmodify-are-not-supported

반응형