Meine Daten sind wie folgt:Model.update nicht auf Mungo arbeitet
{
"profileID": "123",
"fullname": "Name",
"notifications": [
{
"read": false,
"date": "2017-05-06 13:40:01",
"post": "5555555",
"action": "commented",
"profileID": "456"
},
{
"read": false,
"date": "2017-05-06 13:40:15",
"post": "5555555",
"action": "commented",
"profileID": "456"
}
]}
Ich versuche, einen Knoten API Weg zu machen, um der Lage sein, jede Benachrichtigung zu aktualisieren. Für die Einzigartigkeit kann die Datum Variable verwendet werden. von
- Benutzer suchen Profileid
- Erhalten Sie seine/ihre Benachrichtigungen
- Aktualisieren der lesen Wert für die Benachrichtigung, dass die Datum matches:
So zusammenzufassen.
Ich habe es in der folgenden Weise aufgebaut:
apiRouter.post('/api/changeNotificationStatus', function(req, res){
userModel.update(
{profileID: req.body. profileID, "notifications.date": req.body.date, "notifications.post": req.body.post, "notifications.action": req.body.action},
{$set:{"notifications.$.read": true}},
{multi: false},
function(err, data) {
if (err){
console.log(err);
} else {
console.log(data);
}
});
});
Es gibt keine Fehler, aber ich bekomme die folgende:
{ n: 0, nModified: 0, ok: 1 }
ich, dass die Variablen bestätigt haben: erf. body.profileID, req.body.date, req.body.date, req.body.post und req.body.action kommen gut durch.
Mache ich etwas falsch?
PS: Danke Neil Lunn für das Zeigen auf den model.update Beitrag!
@ neil-lunn - Ich habe die Frage aktualisiert, so dass es kein Duplikat mehr ist. –
Noch ein Duplikat. Deine Syntax ist falsch. Lesen Sie die Antwort erneut. Hier ist die Korrektur. '{profileID: req.body.profileID," notifications.date ": req.body.date," notifications.post ": req.body.post," notifications.action ": req.body.action}'. Sie verwenden also nicht das '$' im "Abfrage" Teil des Updates. Sie verwenden es nur in dem Teil nach '$ set'. –
Danke, dass du darauf hingewiesen hast und die dummen Fehler entschuldigt. Aber ich habe es gerade ausprobiert und bekomme das gleiche Ergebnis, nämlich: {n: 0, nModifiziert: 0, ok: 1} ... Ich habe die Parameter erneut überprüft (über einen Debugger) und sie scheinen in Ordnung zu sein. Irgendwelche Ideen? –