[mongodb] Mongoose — Force 컬렉션 이름

몽구스를 사용하여 데이터베이스와 컬렉션을 만들려고합니다. 내 코드는 다음과 같습니다.

var mongoose = require('mongoose');
    var db = mongoose.connect('mongodb://localhost/testdb');
    var Schema = mongoose.Schema;

    var UserInfo = new Schema({
    username : String,
    password : String
    });

    mongoose.model('UserInfo', UserInfo);

    var user = db.model('UserInfo');


    var admin = new user();
    admin.username = "sss";
    admin.password = "ee";
    admin.save();

이 코드를 실행할 때 mongoose는 userinfo 대신 UserInfo라는 컬렉션을 만들었습니다. 몽구스에서 컬렉션 이름을 강제하는 방법은 무엇입니까?



답변

그래야 해

var UserInfo = new Schema({
  username : String,
  password : String
}, { collection: 'userinfo' });

자세한 내용 은 Mongoose 설명서 에서이 링크 를 참조하십시오.


답변

mongoose 2.0.0을 사용하는 경우 collectionName을 세 번째 인수로 전달하십시오.

mongoose.model('UserInfo', UserInfo, 'UserInfo');


답변

Mongoose는 기본적으로 컬렉션 이름에 ‘s’를 추가합니다. 이를 피하려면 컬렉션의 이름을 세 번째 인수로 전달하십시오.

var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/testdb');
var Schema = mongoose.Schema;

var UserInfo = new Schema({
    username: String,
    password: String
});

mongoose.model('UserInfo', UserInfo, 'UserInfo')

tan = new user();
admin.username = 'sss';
admin.password = 'ee';
admin.save();


답변

mongoose.model의 API 구조는 다음과 같습니다.

Mongoose#model(name, [schema], [collection], [skipInit])

mongoose는 컬렉션 인수가 전달되지 않으면 Mongoose는 모델 이름을 복수화하여 컬렉션 이름을 생성합니다. 이 동작이 마음에 들지 않으면 컬렉션 이름을 전달하거나 스키마 컬렉션 이름 옵션을 설정하십시오.

예:

var schema = new Schema({ name: String }, { collection: 'actor' });

또는

schema.set('collection', 'actor');

또는

var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName);


답변

스키마에서 컬렉션 이름을 설정해야합니다.

new Schema({...},{collection: 'userInfo'});


답변

여기 몽구스 관리자. 을 권장합니다 mongoose.model('UserInfo', UserInfo, 'UserInfo');. 세 번째 인수 mongoose.model()는 컬렉션 이름입니다. 다음은 관련 문서 입니다.


답변

대답:

mongoose.model('UserInfo', UserInfo, 'userinfo'); //3rd parameter 'userinfo': as collection name

구문으로 더 나은 설명 :

Mongoose.model(name, [schema], [collection], [skipInit])

매개 변수 설명 :

  • 첫 번째 매개 변수-이름 모델 이름
  • 두 번째 매개 변수 [스키마] 스키마 이름
  • 세 번째 매개 변수 [컬렉션] 컬렉션 이름 (선택 사항, 모델 이름에서 파생 됨)
  • 네 번째 매개 변수 [skipInit] 초기화 건너 뛰기 여부 (기본값 : false)