[MONGODB] 왜 몽구스는 항상 내 컬렉션 이름의 마지막에 S를 추가 않습니다
MONGODB왜 몽구스는 항상 내 컬렉션 이름의 마지막에 S를 추가 않습니다
예를 들어, 컬렉션에서이 코드의 결과 생성되는 "datas를"라는
var Dataset = mongoose.model('data', dataSchema);
그리고 "사용자"라는 컬렉션에서이 코드의 결과가 생성되는
var User = mongoose.model('user', dataSchema);
감사
해결법
-
==============================
1.몽구스는 현명하게 노력하고있다. 당신은 그러나 당신이 원하는 무엇이든 할 강제 할 수 있습니다
몽구스는 현명하게 노력하고있다. 당신은 그러나 당신이 원하는 무엇이든 할 강제 할 수 있습니다
VAR dataSchema 새로운 스키마 = ({...}을 {컬렉션 '데이터'})
-
==============================
2.mongoose.model의 API 구조는 이것이다 :
mongoose.model의 API 구조는 이것이다 :
Mongoose#model(name, [schema], [collection], [skipInit])
무엇 몽구스하는 일은 더 수집 인수가 전달되지 않은 경우, 몽구스 모델 이름을 복수화하여 컬렉션 이름을 생산한다는 것입니다. 당신이이 동작이 마음에 들지 않는다면 컬렉션 이름을 전달하거나 스키마 수집 이름 옵션을 설정 중 하나.
예:
var schema = new Schema({ name: String }, { collection: 'actor' });
또는
schema.set('collection', 'actor');
또는
var collectionName = 'actor' var M = mongoose.model('Actor', schema, collectionName);
-
==============================
3.당신이 그것을 완전히 비활성화 할 수 있습니다 5.x를 몽구스 시작 :
당신이 그것을 완전히 비활성화 할 수 있습니다 5.x를 몽구스 시작 :
mongoose.pluralize(null);
-
==============================
4.당신은 단순히 수집을 위해 실제 이름을 정의하는 세 번째 인수로 문자열을 추가 할 수 있습니다. 각각의 데이터 및 사용자로 킵 이름으로, 귀하의 예를 확장 :
당신은 단순히 수집을 위해 실제 이름을 정의하는 세 번째 인수로 문자열을 추가 할 수 있습니다. 각각의 데이터 및 사용자로 킵 이름으로, 귀하의 예를 확장 :
var Dataset = mongoose.model('data', dataSchema, 'data'); var User = mongoose.model('user', dataSchema, 'user');
-
==============================
5.당신은 세 번째 매개 변수로 컬렉션 이름을 추가 할 수 있습니다. 타이프 스크립트를 사용하여 예제를 참조하십시오 :
당신은 세 번째 매개 변수로 컬렉션 이름을 추가 할 수 있습니다. 타이프 스크립트를 사용하여 예제를 참조하십시오 :
import DataAccess = require('../DataAccess'); import IUser = require("../../Models/Interfaces/IUser"); var mongoose = DataAccess.mongooseInstance; var mongooseConnection = DataAccess.mongooseConnection; class UserSchema { static get schema () { var schema = mongoose.Schema({ _id : { type: String }, Name: { type: String, required: true }, Age: { type: Number, required: true } }); return schema; } } var schema:any = mongooseConnection.model<IUser>("User", UserSchema.schema,"User"); export = schema;
-
==============================
6.
//Mongoose's definition file. NOT your model files 1 const mongoose = require("mongoose"); 2 mongoose.pluralize(null);
당신의 몽구스 파일에 linemongoose.pluralize (널)를 추가하면 컬렉션 이름의 복수화를 방지 할 수 있습니다. 당신은 당신의 모델 파일에이 줄을 추가 할 필요가 없습니다.
여기에 본.
from https://stackoverflow.com/questions/10547118/why-does-mongoose-always-add-an-s-to-the-end-of-my-collection-name by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의 쿼리의 키에 와일드 (0) | 2019.12.02 |
---|---|
[MONGODB] 제한을 사용할 때 MongoDB를 가진 총 문서의 수를 가져옵니다 (0) | 2019.12.02 |
[MONGODB] Meteor.js와 여러 MongoDB의 데이터베이스를 사용하여 (0) | 2019.12.02 |
[MONGODB] 피 경고 true로 useNewUrlParser을 설정하여 "현재의 URL 문자열 파서는 사용되지 않습니다" (0) | 2019.12.02 |
[MONGODB] 수 () 찾아 ()의 차이. COUNT ()하여 MongoDB에서 (0) | 2019.12.02 |