Создаю простой чятик.
Есть три модели: Users, Dialogs, Messages.
По аналогии с populate в Waterline, думал построить следующее:
В базе данных хранятся диалоги следующего вида:
creator: '1';
members: ['1', '2']
Цифры - это ID пользователей из Users.
При поиске по базе диалогов хотелось по этим ID сразу подгружать нужные данные по пользователям, поэтому модель диалогов сделал так, как указано в документации:
var DialogSchema = new Schema({
creator: String,
members: [{type: Schema.Types.ObjectId, ref: 'User'}]
}
Но, судя по всему, я что-то упускаю. Я делаю поиск по members, Dialog.find({members: req.params.id}), что до попытки применить populate возвращало мне нужные диалоги. Теперь возвращается ошибка
'Cast to ObjectId failed for value "2" at path "members" for model "Dialog"'. Значение "2" - как раз тот самый ID пользователя.