2012-09-13 15 views
5

Próbuję znaleźć obiekt przez _id z Meteororem.Meteor: Znalezienie obiektu z kolekcji przez:

Oto co próbowałem:

Meteor.publish("gifts", function(gid) { 
    console.log("Looking for "+ gid); 
    var gifts = Gifts.find({_id: gid}).fetch(); 
    console.log("Result: " + gifts); 
    return gifts; 
}); 

To wyjście:

Szukasz f1790caa-7a10-4af5-a01c-e80bb2c2fd55 Wynik:

gdybym wyjmij zapytanie:

Meteor.publish("gifts", function(gid) { 
    console.log("Looking for "+ gid); 
    var gifts = Gifts.find().fetch()[1]; 
    console.log("Result:" + gifts._id); 
    return gifts; 
}); 

Obiekt znajduje się w tablicy, a _id jest taki sam jak powyżej.

Szukasz f1790caa-7a10-4af5-a01c-e80bb2c2fd55 Wynik: f1790caa-7a10-4af5-a01c-e80bb2c2fd55

Także, jeśli I wykonanie znalezienia w konsoli Mongo uważam, że obiekt:

> db.gifts.find({_id: 'f1790caa-7a10-4af5-a01c-e80bb2c2fd55'}); 
{ "name" : "A new gift", "_id" : "f1790caa-7a10-4af5-a01c-e80bb2c2fd55" } 

Co robię źle?

Odpowiedz

5

Skąd włożyłeś dokument? MongoDB traktuje łańcuchy i obiekty Id inaczej, i wygląda na to, że obecnie występuje błąd w Meteodzie, który nie obsługuje poprawnie obiektów ObjectIds.

https://github.com/meteor/meteor/issues/61

+1

Dziękuję za wskaźnik. Zaskakujące, że coś tak podstawowego, jak to nie działa, nawet biorąc pod uwagę wczesny etap Meteor jest w. –

+0

W wersji 1.4 meteor, zachowanie może być nadal obserwowane (wpadłem w tę samą pułapkę). Problem związany z @shelman zaleca użycie 'powłoki meteorów' zamiast konsoli mongo. – zliw

Powiązane problemy