본 자료는 Elice 플랫폼의 자료를 사용하여 정리하였습니다.
Database
Collection
Document
const { Schema } = require('mongoose');
const PostSchema = new Schema({
title: String,
content: String,
}, {
timestamps: true,
});
module.exports = PortSchema;
const mongoose = require('mongoose');
const PostSchema = require('./schema/board');
exports.Post = mongoose.model('Post', PostSchema);
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myapp');
Create
find
, findById
, findOne
updateOne
, updateMany
, findByIdAndUpdate
, findOneAndUpdate
deleteOne
, deleteMany
, findByIdAndDelete
, findOneAndDelete
const { Post } = require('./models');
async function main() {
const created = await Post.create({
title: 'first title',
content: 'second title',
});
const multipleCreated = await Post.create([
item1,
item2
]);
}
const { Post } = require('./models');
async function main() {
const listPost = await Post.find(query);
const onePost = await Post.findOne(query);
const postById = await Post.findById(id);
}
async function main() {
const updateResult = await Post.updateOne(query, {
...
});
const updateResults = await Post.updateMany(query, {
...
});
const postById = await Post.findByIdAndUpdate(id, {
...
});
const onePost = await Post.findOneAndUpdate(query, {
...
});
async function main() {
const deleteResult = await Post.deleteOne(query);
const deleteResults = await Post.deleteMany(query);
const onePost = await Post.findOneAndDelete(query);
const postById = await Post.findByIdAndDelete(query);
}
const Post = new Schema({
...
user: {
type: Schema.Types.ObjectId,
ref: 'User'
},
comments: [{
type: Schema.Types.ObjectId,
ref: 'Comment',
}],
});
const post = await Post.find().populate(['user', 'comments']);
// post.user.name, post.comments[0].content
{key: value}
로 exact match$lt
, $lte
, $gt
, $gte
를 사용하여 range query 작성 가능$in
을 사용하여 다중 값으로 검색$or
을 사용하여 다중 조건 검색Person.find({
name: 'kyubum',
age: {
$lt: 20,
$gte: 10,
},
languages: {
$in: ['ko', 'en'],
},
$or: [
{ statue: 'ACTIVE' },
{ isFresh: true },
],
});
connected
- 연결 완료disconnected
- 연결이 끊김reconnected
- 재연결 완료reconnecteFailed
- 재연결 시도 횟수 초과mongoose.connect('----');
mongoose.connection.on('connected', () => {
});
mongoose.connection.on('disconnected', () => {
});
mongoose.connection.on('reconnected', () => {
});
mongoose.connection.on('reconnecteFailed', () => {
});