Я в процессе обновления созданного веб-приложения стека MERN, которое подключается к MongoDB.
Это социальная платформа, где у пользователя могут быть подписчики и подписчики, которые ранее были массивом. идентификаторов объектов в пользовательской коллекции.
До:
const UserSchema = new mongoose.Schema({
name: {
type: String,
//other stuff
},
follower: {type: mongoose.Schema.ObjectId, ref: 'User'},
following: {type: mongoose.Schema.ObjectId, ref: 'User'},
//more stuff
})
В результате следующие массивы / подписчики в пользовательском объекте будут выглядеть следующим образом: follow: [ObjectId ('5e6e3e56c7a30506a42356fe' ), ObjectId ('5e7f9f11b1d8181ac64b8b47')]
Но у меня нет встроенного веб-крюка, который позволяет пользователю планировать отписку на более поздний срок, поэтому я изменил мою схему, чтобы она содержала FollowSchema, которая представляет как последователя, так и последователя
После:
const FollowSchema = new mongoose.Schema({
user: {type: mongoose.Schema.ObjectId, ref: 'User'},
expires: {
type: Date,
default: null
}
})
const UserSchema = new mongoose.Schema({
name: {
type: String,
//other stuff
},
follower: [FollowSchema],
following: [FollowSchema],
//more stuff
})
Все эти функции прекрасно работают в моей локальной версии приложения. Но я знаю, что у меня есть живые пользователи с оригинальной структурой подписчиков, и я хотел бы массово обновить это через MongoDB CLI
Я знаю, как получить пользователей, но я не уверен, как преобразовать массив ObjectIds для массива Objects, где в этом объекте содержится исходный массив.
Любая помощь / предложения будут с благодарностью приняты