Я пишу модульные тесты JavaScript для коллекций Mongo. У меня есть массив коллекций, и я хотел бы создать массив элементов для этих коллекций. В частности, меня интересует использование Array.prototype.map
. Я ожидаю, что что-то вроде этого сработает:
const collections = [fooCollection, barCollection, bazCollection];
const counts = collections.map(Mongo.Collection.find).map(Mongo.Collection.Cursor.count);
Но вместо этого я получаю сообщение об ошибке, говорящее мне, что Mongo.Collection.find
не определено. Я думаю, что это может иметь какое-то отношение к тому, что Mongo.Collection
является конструктором, а не созданным объектом, но я хотел бы немного лучше понять, что происходит. Может ли кто-нибудь объяснить, почему мой подход не работает и что мне нужно изменить, чтобы я мог передать метод find
методу map
? Спасибо!
fooCollection
и тому подобные экземплярыMongo.Collection
? А что ты пытаешьсяfind
в первом звонке? - person T.J. Crowder   schedule 27.12.2016Mongo.Collection.prototype.find
? - person apsillers   schedule 27.12.2016Mongo.Collection.prototype.find
действительно работает. Проблема в том, чтоmap
вызываетfind(arrayItem)
для каждого элемента, а неarrayItem.find()
. Я могу передать карту анонимной процедуре, чтобы делать то, что я хочу. Это, вероятно, лучше в любом случае, потому что тогда я могу вернуть счет из одной функции, а не вызыватьmap
дважды. Спасибо за помощь. - person Reggie   schedule 27.12.2016