IT

몽구스 — 힘 모음 이름

lottoking 2020. 8. 6. 22:20
반응형

몽구스 — 힘 모음 이름


mongoose를 사용하여 데이터베이스와 컬렉션을 만들려고합니다. 내 코드는 다음과 달라집니다

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])

몽구스가하는 컬렉션 인수가 전달되지 않은 컬렉션 몽구스는 모델 이름을 복수화하여 컬렉션 이름을 생성한다는 것입니다. 이 동작이 마음에 들지 꽃다발 컬렉션 이름을 전달하거나 스키마 컬렉션 이름 옵션을 설정하십시오.

예 :

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])

매개 변수 설명 :

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

모델명 : userInfo.js

빠른 경로 파일 또는 app.js

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

그런 다음 userInfo.js에서

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserInfo = new Schema({
 username : String,
 password : String 
});
module.exports = mongoose.model('UserInfo', UserInfo);

참고 URL : https://stackoverflow.com/questions/7486528/mongoose-force-collection-name

반응형