Вчера я обновил свой метеорит и попытался использовать новый Meteor.Collection.ObjectID
. Но так без успеха. Во-первых я обновил свои коллекции таким образом:метеор 0.5.7: как обращаться/использовать Meteor.Collection.ObjectID?
myCollection = new Meteor.Collection('mycollection', {idGeneration: 'MONGO'}
Теперь нормальные новые вставки имеют _id
как Wi2RmR6CSapkmmdfn
...
Тогда у меня есть коллекция с массивом включен (?). Мне нравится иметь уникальный идентификатор для каждого объекта в этом массиве. Итак, i $push
объект с полем, как id: new Meteor.Collection.ObjectID()
, в мой массив. Результат в базе данных следующий: ObjectId("5b5fc278305d406cc6c33756")
. (Это кажется нормальным.)
Но позже я хочу обновить мой толкаемый объект, если id
равен id, который я ранее хранил в качестве атрибута данных в теге html.
var equals = EJSON.equals(dbId, htmlId);
(Это приводит каждый раз, когда в false
Так я вошел значения dbId
и htmlId
в консоль с console.log(typeof dbId, dbId);
.)
Значения этих двух переменных заключается в следующем:
object { _str: 'a86ce44f9a46b99bca1be7a9' }
(DBID)
string ObjectID("a86ce44f9a46b99bca1be7a9")
(htmlId, это кажется правильным, но почему обычай ввести строку?)
Как правильно использовать Meteor.Collection.ObjectID
?
** Спасибо за быстрый ответ! :) ** Btw: '{{_id.toHexString}}' не работает напрямую, но я зарегистрировал глобальный помощник руля, который выполняет это задание. –
Он должен работать без помощника, я тестировал его перед отправкой, если у вас есть другие объекты до объекта Meteor 0.57? – Akshat
Хмм ... Я удалил свои коллекции, но мой помощник по отладке ручек, который печатает заданное значение в консоли, ничего не печатает, когда я вызываю его с помощью '{{debug _id.toHexString}}'. Я посмотрел на источники minimongo и '{{_id._str}}' работает напрямую ('ObjectID.toHexString()' возвращает '_str') –