반응형
model.find()가 mongoose에서 비어 있음을 반환합니다.
나는 mongoose에서 db의 db에 있는 컬렉션의 모든 데이터를 나열하는 작업을 하고 있습니다.
요청에서:
http://localhost:3000/listdoc?model=Organization
나는 다음 코드를 하고 있습니다.
exports.listDoc = function(req, res) {
var Model = mongoose.model(req.query.model); //This is defined and returns my desired model name
Model.find().populate('name').exec(function(err, models) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(models);
}
});
};
데이터베이스에 이미 항목이 있습니다. 그러나 위의 코드가 비어 있습니다. 왜죠?
EDIT : 다음 코드도 빈 값을 반환합니다.
exports.listDoc = function(req, res) {
var Model = mongoose.model(req.query.model);
Model.find({},function(err,models){
console.log(models);
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(models);
}
});
};
사용된 스키마:
var Organization = mongoose.Schema({
name: String
});
당신의 문제는 몽구스가 컬렉션을 다원화하는 것입니다.Mongoose가 "조직"을 쿼리하고 있지만 데이터가 "조직"으로 mongodb에 있습니다.그들을 일치시키면 당신은 갈 수 있을 것입니다.mongo shell을 통해 mongodb에서 이름을 바꾸거나 mongoose에게 알려줄 수 있습니다.mongoose 문서에서:
var schema = new Schema({ name: String }, { collection: 'actor' });
// or
schema.set('collection', 'actor');
// or
var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName)
공식 문서에서
채우기는 문서에서 지정된 경로를 다른 컬렉션의 문서로 자동 변경하는 프로세스입니다.
채우지 않고 사용해 보십시오.
Model.find({}).exec(function(err, models) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.json(models);
}
});
언급URL : https://stackoverflow.com/questions/18628656/model-find-returns-empty-in-mongoose
반응형
'IT' 카테고리의 다른 글
Heroku에서 Node.js 앱을 만들 때 Git에 "node_modules" 폴더를 체크인해야 합니까? (0) | 2023.07.02 |
---|---|
MongoDB의 ObjectIds는 어떻게 생성됩니까? (0) | 2023.06.27 |
긴 줄에 gitdiff를 어떻게 사용해야 합니까? (0) | 2023.06.27 |
.git 폴더를 추적할 파일 외부에 저장할 수 있습니까? (0) | 2023.06.27 |
MongoDB 대량 입력 대 대량 입력 (0) | 2023.06.27 |