ich mit einer Liste der BenachrichtigungenMongoDB Position Operator nur erste Abhilfe abgestimmt
{
"notifications": {
"0": {
"id": "1",
"isRead": false,
"user": {
"id": ObjectId("4f7999c5e4b0f2e6b8490e08"),
"firstName": "X",
"lastName": "Y",
"profilePictureUrl": "URL1"
}
},
"1": {
"id": "2",
"user": {
"id": ObjectId("4f7999c5e4b0f2e6b8490e08"),
"firstName": "X",
"lastName": "Y",
"profilePictureUrl": "URL1"
}
}
},
}
ein Benutzerobjekt haben Wenn ein Benutzer ändert sein Profilbild ich alle entsprechenden Meldungen aktualisieren möchten. Ich versuche so etwas in Morphia zu machen, aber es scheint nur den ersten Eintrag zu aktualisieren.
Query<UserEntity> query = ds.createQuery(UserEntity.class).filter("notifications.user.id",
userProperties.id).field("notifications.user.profilePictureUrl").notEqual(userProperties.profilePictureUrl);
UpdateOperations<UserEntity> op = ds.createUpdateOperations(UserEntity.class).disableValidation()
.set("notifications.$.user.profilePictureUrl", userProperties.profilePictureUrl);
results = update(query, op);
Gibt es eine Umgehungsmöglichkeit dafür? Ich mache das in einem Hintergrundjob, also wird eine kostspieligere Lösung auch funktionieren.
Ich benutze Morphium, wo der Update-Befehl multi = wahr ergibt. –
10 Das funktioniert immer noch nicht –