У меня есть коллекция под названием разговор, и документ выглядит следующим образом:
{
_id: "1",
userOneId: "11",
userOneName: "User One Name",
userTwoId: "22",
userTwoName: "User TwoName",
lastMessage: {
senderName: "User Two Name",
message: "rrrr"
}
}
Я хочу найти документ, для которого userOneId равен someId или userTwoId равно «someId»
условия:
, если «userOneId» равен «someId»
if userOneName is equal to lastMessage.senderName is true
update both lastMessage.senderName and userOneName to "newUserName"
if userOneName is equal to lastMessage.senderName is false
update only userOneName to "newUserName"
или
, если «userTwoId» равен «someId»
if userTwoName is equal to lastMessage.senderName is true
update both lastMessage.senderName and userTwoName to "newUserName"
if userTwoName is equal to lastMessage.senderName is false
update only userTwoName to "newUserName"
, невозможно, чтобы оба условия выполнялись.
my Пример запроса: (до сих пор не знаю, как условно обновить свойство c)
conversationModel.updateMany(
{
$or: [
{ userOneId: currentUserId },
{ userTwoId: currentUserId },
]
},
{
/*
insert conditionally update a specific property here
*/
}
)