Хотя я нашел похожий вопрос по stackOverFlow MongoDB, скопируйте поле в другую коллекцию с внешним ключом
Я хочу скопировать поле name
из коллекции userdetails
вuser
коллекция, где userId в userDetails равен _id для пользователя.
пользователь коллекция
{
"_id" : ObjectId("5b97743bbff66e0be66283cc"),
"username" : "mmi_superadmin",
"accId" : "acc1"
}
{
"_id" : "c21d580ea3ca5c7a1664bd5feb57f0c8",
"username" : "client",
"accId" : "acc1"
}
userDetail коллекция
{
"_id" : ObjectId("5b97743bbff66e0be66283cd"),
"userId" : "5b97743bbff66e0be66283cc",
"name" : "mmi_superadmin"
}
{
"_id" : "5bab8a60ef86bf90f1795c44",
"userId" : "c21d580ea3ca5c7a1664bd5feb57f0c8",
"name" : "RAHUL KUMAR TIWARI"
}
Вот мой запрос:
db.userDetails.find().forEach(
function(x) {
db.user.update( {_id :x.userId}, {$set: {name:x.name}});
}
);
Этот запрос частично работает.Он обновляет только user
документы, в которых _id имеет тип string.Пользовательский документ с _id в качестве ObjectId не обновляется.