2011-08-11 19 views
32

Aşağıdaki şemaya sahibim:Mongoose findOne nasıl kullanılır

Schema = mongoose.Schema 

AuthS = new Schema 
    auth: {type: String, unique: true} 
    nick: String 
    time: Date 
Auth = mongoose.model 'Auth', AuthS 

Sadece veritabanımda bulunan bir kaydı kurtarmak istiyorum:

Auth.findOne({nick: 'noname'}, function(obj) { console.log(obj); }); 

Ne yazık ki bu her zaman null'yi kaydeder. Mongo kabuğundaki db.auths.findOne({nick: 'noname'}) her zaman bir değer döndürür. Ne oluyor?

+14

CoffeeScript'te olduğu için özür dilemeye gerek yok; sadece javascript ile etiketlemeyin. –

cevap

63

yerine function(err,obj) kullanmak gerekir argümanlarınız, kaç argümanınız olursa olsun.

+1

"findOne" işlevini bu şekilde kullandığımda, verilerimi başarılı bir şekilde aldım, ancak 'obj' bir 'Document' nesnesi değil. 'Obj.nick' ve 'obj [nick]' i denediğimde tanımsızlaşıyorum. '' Object.get '' ('nick') 'ı denediğimde, nesne aldığım yöntemin olmaması. Birçok JSON dönüşümünü denedim ve bir "doc = new Document (obj)" oluşturdum. Ben de doc.toObject (obj) 've' doc.set (obj) 'ı denedim; –

+2

@JonathanCzitkovics Eğer aradığınız şeyi size veren obj.toObject() öğesini kullanırsanız düşünüyorum. – Guy

+5

İşlem başarılı bir şekilde yürütüldüğünde (err boştur), ancak eşleşme olmazsa, belge de boş olacaktır. –

2

: Sorunu Bulunan