2013-01-06 7 views
11

findfindOneを使ってみると、どちらもドキュメントを返さない。 findOnenullを返す間にfindが空の配列を返しています。どちらの場合も、のerrも同様です。ここでモンゴーズは常に空の配列を返すNodeJS

は私の接続である:ここでは

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を初めて使用したので、私は基本のいくつかを失っていると思います。正しい方向へのプッシュはすばらしいでしょう!

+0

何がRockMongo経由で文書を見ているコレクションの名前は? – JohnnyHK

+0

すべての情報はテスト中の 'files'コレクションにあります。 – locrizak

答えて

34

mongoose.modelを呼び出すと、モデルが関連付けられているコレクションの名前が設定されます。デフォルトは、pluralized、小文字のモデル名です。あなたのコードでは、それは'models'になります。 filesコレクションでモデルを使用するには、にその行を変更:

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

または

var Model = mongoose.model("file", fileSchema); 
+3

美しい、ありがとう。私は私が従ってきたチュートリアルのどれもそれを言及していないことに驚いています。 – locrizak

+4

保存日。どうもありがとう!これは、公式ガイドで強調されていないのは残念です。 – thameera

+0

こちらは@thameeraと同じです。私はネットの土地から未知の海に移動しています。私はこの土地に多くの時間を無駄にしました。ライフセーバー。はい、私の検索の試みでは、大会は_anywhere_には言及されていないようです。ありがとうございました!!! – scniro

関連する問題