2012-07-26 21 views
12

Ben mongodb bir yanıt almak için görünmüyor. Ben node.js ve mongodb kullanarak mongoose kullanıyorum. Ben Mongo kabuğunda gösteri dbs yazarsanız benim node.js uygulamasındaMongoose sorgu döndürme sıfır null

I) Ben

admin (empty) 
myDB  0.203125GB 
local (empty) 
test (empty) 

db.blogmodel.find (olsun

mongoose.connect('mongodb://localhost:27017/myDB'); 

var Schema = mongoose.Schema, 
    ObjectId = Schema.ObjectId; 

var BlogPost = new Schema({ 
    author : ObjectId, 
    title : String, 
    slug : { type: String, lowercase: true, trim: true }, 
    content : String, 
    summary : String, 
    date : Date 
}) 

var BlogModel = mongoose.model('BlogPost', BlogPost); 

BlogModel.find({}, function(docs){ 
    console.log(docs); 
}); 

döndürür vardır:

{ "_id" : ObjectId("50108d3df57b0e3375a20479"), "title" : "FirstPost" } 

ve evet Mongod koşularım var. onun (model adı, şema adı, koleksiyon ad), BlogModel.find geri arama için

+1

Bu sorun beni çıldırdı! Sabit çözüm parçanız için kredi ekledim! – efkan

cevap

21

Gelincik model adlarına pluralizes. Bu, mongo kabuğundaki sorgunuzun "blogmodel" koleksiyonunda olduğunu söyledi.

var BlogModel = mongoose.Model("BlogModel", ..) 

veya üçüncü param olarak toplama adı geçmesi: Bu durumda benim durum hatası Mongo ithal verilerin neden olduğu içinde

var BlogModel = mongoose.model("BlogPost", schema, "blogmodel") 
+0

Teşekkürler adamım, yukarıdaki düzeltmeye değiştirmek zorunda kaldım ama mesajınız çözmeme yardımcı oldu, böylece size cevabı vereceğim. – lostAstronaut

5

İlk parametre err olduğunu ikinci parametre docs çünkü Çözüm

var BlogModel = mongoose.model('blogmodel', BlogPost, 'blogmodel'); 

Sabit

Çalışıyor. Yani kodu olmalıdır: Bu "blog yayınlarımızı" koleksiyonu find çalışan yerine "blog gönderisi" oluyor böylece

BlogModel.find({}, function(err, docs){ 
    console.log(docs); 
}); 
+0

Hala boş çıkıyor [] Daha önce denedim. – lostAstronaut

+0

"BlogPosts" koleksiyonu, mongo kabuğundan sorguladığınızda belgeler içeriyor mu? – JohnnyHK

+0

Orijinal gönderiye ekledim ve evet, test için bir dokümana sahibim, Hangi nedenle bulamadım. – lostAstronaut

0

Dün benzer hatayla karşılaştı. Mongoimport anahtarını kullandıktan sonra _id, ObjectId yerine dize olarak saklandı. Mongo'da veriyi sorgularken her şey iyi işliyor, ama Mongoose'da _id ile bir şey bulmaya çalışırken, her zaman boş veya boş Array döndü. Umarım bu bilgi birileri için yararlı olabilir.

İlgili konular