Метеор Монго найти не работает для _id: 0

У меня есть шаблон с именем qa и внутри него я использую помощника по имени question, который получит text поле моего документа, основанное на _id имущество.

Template.qa.helpers({
    question: function () {
        return Questions.find({_id: 24}).fetch()[0].text;
    }
});

Это прекрасно работает для всех _id значения, если я не использую _id: 0, то ничего не возвращается. я бегу db.questions.find({_id: 0}) на консоли minimongo, и он возвращает документ.

{ "_id" : 0, "author" : 0, "create" : "2014-12-22T13:26:23.038Z", "liked" : [ ], "range" : "", "text" : "I want to get this text", "update" : "2014-12-22T13:26:23.038Z", "version" : 1 }

Могу ли я не использовать _id: 0 в collection.find() для Метеора?

Уточнение: я не хочу возвращать все поля, кроме _id Я хочу найти / выбрать на основе _id значение. Но это не работает, если _id это 0.

1 ответ

Решение

Я думаю, что вы хотите избежать ложных значений _id. Метеор заменяет ложный _id случайным числом, чтобы оно никогда не попадало в базу данных. Комментарии к коду объясняют это:

// protect against dangerous selectors.  falsey and {_id: falsey} are both
// likely programmer error, and not what you want, particularly for destructive
// operations.  JS regexps don't serialize over DDP but can be trivially
// replaced by $regex.
Другие вопросы по тегам