-
[ MongoDB ] 기본 CRUDComputer Science/데이터베이스 2023. 5. 11. 20:13반응형
import { MongoClient } from "mongodb"; export async function insert(dbName, collectionName, data) { //create 생성 const client = new MongoClient(process.env.URL); try { //client 연결 await client.connect(); //database, collection 설정 const database = client.db(dbName); const collection = database.collection(collectionName); // try { await collection.insertMany([data]); console.log("insertion complete"); } catch (err) { console.error(`ERROR: ${err}`); } } catch (err) { console.log("Error occurs when connecting: ", err); } finally { //연결 해지 await client.close(); } } export async function read(dbName, collectionName, findQuery) { const client = new MongoClient(process.env.URL); try { await client.connect(); const database = client.db(dbName); const collection = database.collection(collectionName); try { const cursor = await collection.find(findQuery); console.log(cursor); } catch (err) { console.error(`ERROR: ${err}`); } } catch (err) { console.log("Error occurs when connecting: ", err); } finally { client.close(); } } export async function update(dbName, collectionName, findQuery, updateDoc) { const client = new MongoClient(process.env.URL); try { await client.connect(); const database = client.db(dbName); const collection = database.collection(collectionName); try { await collection.findOneAndUpdate(findQuery, updateDoc, { returnOriginal: false, }); } catch (err) { console.error(`ERROR: ${err}`); } } catch (err) { console.log("Error occurs when connecting: ", err); } finally { client.close(); } } export async function remove(dbName, collectionName, deleteQuery) { const client = new MongoClient(process.env.URL); try { await client.connect(); const database = client.db(dbName); const collection = database.collection(collectionName); try { await collection.deleteMany(deleteQuery); } catch (err) { console.error( `Something went wrong trying to delete documents: ${err}\n` ); } } catch (err) { console.log("Error occurs when connecting: ", err); } finally { client.close(); } }
반응형