복붙노트

[MONGODB] 몽구스는 항상 빈 배열 NodeJS를 반환

MONGODB

몽구스는 항상 빈 배열 NodeJS를 반환

내가 찾아 findOne를 사용하여 시도하고 모두 문서를 반환하지 않습니다. findOne가 null을 반환하는 동안 발견은 빈 배열을 반환합니다. 널 (null)의 두 경우 모두 ERR뿐만 아니라.

여기 내 연결은 다음과 같습니다

function connectToDB(){
    mongoose.connect("mongodb://localhost/test"); //i have also tried 127.0.0.1
    db = mongoose.connection;
    db.on("error", console.error.bind(console, "connection error:"));
    db.once("open", function callback(){
        console.log("CONNECTED");
    });
};

다음 스키마는 나에게있다 :

var fileSchema = mongoose.Schema({
    hash: String,
    type: String,
    extension: String,
    size: String,
    uploaded: {type:Date, default:(Date.now)},
    expires: {type:Date, default:(Date.now()+oneDay)}
});
var Model = mongoose.model("Model", fileSchema);

그리고 내 쿼리는 여기에 있습니다 :

Model.find({},function(err, file) {
    console.log(err)
    console.log(file);  
});

나는 데이터베이스에 물건을 업로드하고 RockMongo를 통해 그들을 볼 수 있지만 난 후에를 가져올 수는 없습니다. 난 그냥 기초의 일부를 누락 생각 있도록하여 MongoDB를 사용하여이 내 첫 번째 시간입니다. 올바른 방향으로 밀어 넣기 좋은 것입니다!

해결법

  1. ==============================

    1.mongoose.model에 대한 호출은 기본이 복수로, 낮은 맡았다 모델 이름 인으로, 모델에 묶여 컬렉션의 이름을 설정합니다. 그래서 코드, 즉 '모델'이 될 것입니다. 파일 컬렉션 모델을 사용하려면 해당 라인을 변경 :

    mongoose.model에 대한 호출은 기본이 복수로, 낮은 맡았다 모델 이름 인으로, 모델에 묶여 컬렉션의 이름을 설정합니다. 그래서 코드, 즉 '모델'이 될 것입니다. 파일 컬렉션 모델을 사용하려면 해당 라인을 변경 :

    var Model = mongoose.model("Model", fileSchema, "files");
    

    또는

    var Model = mongoose.model("file", fileSchema);
    
  2. from https://stackoverflow.com/questions/14183611/mongoose-always-returning-an-empty-array-nodejs by cc-by-sa and MIT license