У нас есть экземпляр MongoDB с коллекцией пользователей, который выглядит примерно так:
{
"Username": "Amin-AMD",
"FriendsList": [
{
"UserId": "5e076f4b19e8cd000162c962",
"NickName": "Amin-Mobile",
"ClanName": null,
"ClanId": null,
"Level": NumberInt(1),
"ActiveCosmeticItems": [
"hair0",
"skin0",
"eye0",
"mouth0",
"daub0",
"acc"
],
"IsOnline": false
},
{
"UserId": "5e08a4a119e8cd000167929e",
"NickName": "saeed",
"ClanName": null,
"ClanId": null,
"Level": NumberInt(7),
"ActiveCosmeticItems": [
"hair5",
"skin2",
"eye2",
"mouth10",
"daub0",
"acc0"
],
"IsOnline": false
}
]
}
Как показано выше, я встроил список друзей в коллекцию наших пользователей. но по причине, нам нужно изменить эту модель, чтобы ссылаться на друзей. Поэтому мне нужно написать запрос для замены всего FriendModel просто на UserId
.
Я достиг этого запроса, но он выдает исключение.
db.Users.updateMany({ "FriendsList" : { $ne : [] }}, { $set : { "FriendsList.$" : "FriendsList.$.UserId" }})
На самом деле, для друг, мне просто нужен UserId
, поэтому новый FriendsList
будет массивом, и он должен выглядеть примерно так:
{
"Username": "Amin-AMD",
"FriendsList": [
"5e076f4b19e8cd000162c962",
"5e08a4a119e8cd000167929e"
]
}
MongoDB версия: 4.2.1