option
객체를 통해 스키마의 형태가 구체화된다.const mongoose = require('mongoose');
const someSchema = new mongoose.Schema(option)
ObjectId
가 만들어진다.// 1.
new mongoose.Schema({
address: {
street: String,
name: String,
}
})
// 2.
const addressSchema = new mongoose.Schema({
street: String,
name: String,
})
new mongoose.Schema({
address: addressSchema
})
const someModel = mongoose.model(collectionName, schemaName)
// 1. 쿼리 생성 후 저장
const inMemoryDocument = new Model(document);
inMemoryQuery
.save()
.then(successCallback)
.catch(failureCallback)
// 2. await 키워드를 이용한 다큐먼트 생성
// 프라미스, 콜백 패턴 전부 사용할 수 있다.
await Model.create(document): Promise<T>
Model.create(document, Callback: (error, result) => void)
.exec()
메서드로 조회const query = Model.find({})
const foundData = query.exec();
foundData.then(...)
// 위와 아래는 같음
const foundData = await Model.find({})
const foundData = await Model.find({}).exec();
<추가로 공부할 부분>
1. Populate
2. SQL vs NOSQL
3. Database indexing
createSlice
함수에 options 객체를 전달하여 생성한다.
Fields of options
actionCreator.toString()
이 암묵적으로 액션 타입을 반환한다는 점에서 신선하였다. 코어에서는 비동기 로직을 모두 처리한 다음 리듀서와 직접적으로 연관된 액션(툴킷에서는 3.reducer와 관련된 액션)으로 전달하는데, 3의 경우 1에서 정의된 도메인에 한정적으로 로직이 그려지기 때문에 이러한 장치를 마련하지 않았나 싶다. createAsyncThunk
API를 한 번 정독해봐야 겠다.ReturnValue: sliceObject
nameOfSlice/keyOfReducer
의 형태로 액션 타입이 결정되며, keyOfReducer
프로퍼티에 해당 크리에이터가 바인딩된다.configureStore
함수에 options 객체를 전달하여 만들 수 있다.<추가로 할 일>
1. 튜토리얼 마지막 부분 정독
2. 간단한 미니 프로젝트(RTK & EXPRESS)