몽구스를 사용하여 데이터베이스와 컬렉션을 만들려고합니다. 내 코드는 다음과 같습니다.
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)