2016-10-24 2 views
0

Если я печатаю на моей консоли, я получаю результат двух записей. Concole result

, но попытка получить некоторые данные в моем коде не удалась.MongoDB Shell возвращает значение, но мой код не

let test = {}; 
    test.entry = Posts.find().count(); 
    console.log(test.entry); 

, который возвращает 0!

Моя коллекция:

Posts = new Mongo.Collection('posts'); 

Posts.allow({ 
    insert: function() { 
     return true; 
    }, 
    update: function() { 
     return true; 
    }, 
    remove: function() { 
     return true; 
    } 
}); 

ли я забыть о чем-то?
Проблема решена. забыл опубликовать и подписаться

ответ

1

Попробуйте это:

let test = {}; 
test['entry'] = Posts.find().count(); 
console.log(test.entry) 
+0

0 всего – user3553562

+1

@ user3553562 Вы не можете авторизоваться из пакетов? если да, делали ли вы pub/sub? Я проверил свой ответ, и это работает как шарм. Если вы пытаетесь использовать консоль, пишите test.entry самостоятельно, без console.log() – Luna

+0

fortgot о pub/sub (facepalm). большое спасибо! – user3553562

0

Posts.find().count() is asynchronous и должен иметь параметр обратного вызова.

попробуйте использовать

Posts.find().count(function(err, count) { 
    test.entry = count; 
    console.log(test.entry); 
}); 

Это должно быть нормально для тестирования, но вы, очевидно, должны проверить err, а когда вы реализуете его в производство :)

+0

test.entry with ur method возвращает "undefined" – user3553562

+0

@ user3553562 как вы проверяете? помните, что это async, поэтому 'console.log (test.entry);' должен находиться внутри функции. Я редактирую ответ, чтобы сделать его более понятным :) –

+0

hmm, теперь он ничего не возвращает, нет новой строки в моей консоли:/ – user3553562

Смежные вопросы