Ваша переменная ids
будет построена из «строк», а не ObjectId
значений.
Мангустировать «autocasts» строковые значения для ObjectId
в их правильный тип в регулярных запросах, но это не происходит в конвейере агрегации , как описано в номере № 1399.
Вместо этого вы должны выполнить правильное литье, чтобы ввести вручную:
ids = ids.map(function(el) { return mongoose.Types.ObjectId(el) })
Затем вы можете использовать их в своем конвейере:
{ "$match": { "_id": { "$in": ids } } }
Причина в том, что конвейеры агрегации «обычно» изменяют структуру документа, и поэтому mongoose не делает никаких предположений о том, что «схема» применяется к документу на любой стадии конвейера.
Можно утверждать, что этап «первого» конвейера, когда это этап $match
, должен сделать это, поскольку документ действительно не изменяется. Но сейчас это не так.
Любые значения, которые могут быть «строками» или, по крайней мере, не корректным типом BSON, должны быть вручную отобраны для соответствия.
Имя команды: Edit.NavigateTo . В VS 2015 RC сочетание клавиш по умолчанию для него по-прежнему Ctrl + ,
в глобальной области видимости.
Ярлык по-прежнему Ctrl + ,
, если вы хотите переназначить его, вы можете перейти в Инструменты -> Параметры -> Среда для редактирования ярлыков. Вы также можете перезапустить VS или попробовать обновить его до последней версии.
Для Mac OS версии 1.13.1 (1.13.1) используйте CMD + P и введите имя файла, который вы хотите открыть.