2011-09-20 13 views
8

Jestem nowy mangusta/MongoDBMongoose z mongodb jak zwrócić właśnie zapisany obiekt?

powiedzieć, że jestem oszczędność coś:

var instance = new TestingModel(); 
instance.test = 'blah2'; 
instance.save(); 

Kiedy więc zapisać, że instancja obj w db będą miały _id i test. Ale atrybut _id jest dodawany do obiektu dopiero po wprowadzeniu db. Uwaga: Nie chcę wcześniej podawać tego identyfikatora. Jednak chcę pobrać obiekt w db, ponieważ muszę użyć wartości _id, ale nie chcę ponownie kwerendy. Czy istnieje sposób, w którym można zapisać obiekt w bazie danych i automatycznie zwraca obiekt bazy danych, aby można było uzyskać wartość _id?

Odpowiedz

17

_id powinien być obecny po zapisaniu:

var instance = new TestingModel() 

instance.test = 'blah' 

instance.save(function(err){ 
    console.log(instance._id) // => 4e7819d26f29f407b0... 
}) 

edit: faktycznie _id jest ustawiona na instancji, więc to powinno być już tam wcześniej zapisać:

var instance = new TestingModel() 
console.log(instance._id) // => 4e7819d26f29f407b0... 
+0

będę testować to, mam nadzieję, że jesteś w porządku, – Derek

+1

fajnie! właśnie to przetestowałem. Hej, gdzie jest dokumentacja na takie rzeczy? – Derek

+0

i czy znasz sposób, aby zrobić wat moje pytanie zadawane, nawet jeśli odpowiedź mi pomaga? po prostu zastanawiam się ... – Derek