mongoose

서정준·2022년 5월 29일
0
post-thumbnail

mongoose란?

Mongoose는 Node.jsMongoDB를 위한 ODM(Object Data Mapping) library이다.

  • ODM의 사용은 코드 구성이나 개발 편의성 측면에서 장점이 많다. 호환성이 없는 프로그래밍언어(JavaScript) Object와 MongoDB의 데이터를 Mapping하여 간편한 CRUD(Create, Read, Update, Delete)를 가능하게 한다.

설치 방법은(Install via NPM)?

command 창에 아래의 명령을 입력한다.

$ npm install mongoose --save

사용 방법은?

  1. Defining your schema
    Everything in Mongoose starts with a Schema. Each schema maps to a MongoDB collection and defines the shape of the documents within that collection.
  2. Creating a model
    To use our schema definition, we need to convert our Schema into a Model we can work with. To do so, we pass it into
	mongoose.model(modelName, schema)
    //modelName: mongoDB에 저장될 파일 이름
  • Example
    import mongoose from 'mongoose';
    const { Schema } = mongoose;

	// 1. Defining your schema
    const blogSchema = new Schema({
      title:  String, // String is shorthand for {type: String}
      author: String,
      body:   String,
      comments: [{ body: String, date: Date }],
      date: { type: Date, default: Date.now },
      hidden: Boolean,
      meta: {
        votes: Number,
        favs:  Number
      }
    });

	// 2. Creating a model 
	const Blog = mongoose.model('Blog', blogSchema);

유용한 mongoose 함수들

Model.exists()
Returns a document with _id only if at least one document exists in the database that matches the given filter, and null otherwise.

  • Example
    const blog = await Blog.exists(id)
    // exists(id) is a shorthand for exists({ _id: id })

Statics
You can also add static functions to your model. One way to add static is

	Schema.static()
  • Example
	// blogSchema를 정의한 후에 static함수를 사용한다.
    blogSchema.static("formatHashtags", function (hashtags) {
      return hashtags
        .split(",")
        .map((word) => (word.startsWith("#") ? word : `#${word}`));
    });
	const Blog = mongoose.model('Blog', blogSchema)
    
    // model을 만들고, 위의 static함수를 이용해 만든 formatHashtags사용 예시.
    const hashtags = Blog.formatHashtags(hashtags)

Model.find()
Finds documents.

  • Example
    // find all documents
	await Blog.find({});
자료 출처

https://mongoosejs.com
https://poiemaweb.com/mongoose

profile
통통통통

0개의 댓글