JavaScript + MongoDB 데이터 다루기

SeJin12·2022년 9월 11일
0

MongoDB

목록 보기
2/2
post-thumbnail
# npm 설치
npm install mongoose
const mongoose = require("mongoose");

mongoose.connect("mongodb://127.0.0.1:27017/databaseName"); // database name: project

// 아래 db 코드는 확인할 때 사용한다. 코드 생략 가능
const db = mongoose.connection;
db.on("open", function () {
  console.log("Connected");
});
db.on("error", function () {
  console.log("Connection Failed!");
});

/**
 * 최초 데이터 1건을 조회한다. (가장 오래된 데이터)
 * @param {mongoose.Schema} schema
 * @param {object} filter
 * @returns
 */
const FindFirst = async (schema, filter) => {
  return await schema
    .findOne(filter)
    .then((response) => response)
    .catch((error) => error);
};

/**
 * 데이터를 저장한다.
 * @param {mongoose.Schema} schema
 * @param {object[]} data
 */
const Save = (schema, data) => {
  for (value in data) {
    new schema(data[value])
      .save()
      .then((response) => response)
      .catch((error) => error);
  }
};
/**
 * 데이터를 조회하고, 최신순으로 조회한다.
 * @param {mongoose.Schema} schema
 * @param {object} filter
 * @param {number} limit
 * @returns
 */
const Find = async (schema, filter = undefined, limit = undefined) => {
  return await schema
    .find(filter)
    .sort({ _id: -1 })
    .limit(limit)
    .then((response) => response)
    .catch((error) => error);
};

/**
 * 데이터를 삭제한다.
 * @param {mongoose.Schema} schema
 * @param {object[]} data
 * @returns { acknowledged: boolean, deletedCount: number }
 */
const Delete = async (schema, filter = undefined) => {
  return await schema.deleteMany(filter)
    .then((response) => response)
    .catch((error) => error);
};

// mongoose 조회 함수 호출하기
( async () => {
  const returnDelete = await Delete(Ticker);
  console.log(returnDelete.deletedCount);
}) ();

Schema.js

const mongoose = require("mongoose");
const { Schema } = mongoose;

const ticker = new Schema({
  name: string
});

const Ticker = mongoose.model("tickers", ticker);

module.exports = {
  Ticker,
};

Error

MongooseError: Query was already executed
findAll() 함수로 데이터를 받아오는 과정에서 오류 발생
clone() 을 추가하여 해결

Site

mongoose guide

0개의 댓글