Kann kein mongodb-Feld von nodejs ohne Mungo austragen

8

Ich versuche, das Feld status in einem solchen Dokument zu xorieren:

%Vor%

Ich benutze diesen Code:

%Vor%

Die Abfrage erzeugt keinen Fehler, aber das Feld status wird nicht geändert. Ich denke, dass das Problem ist, dass es 1 als ein Doppel nicht als eine ganze Zahl interpretiert. Ich habe versucht: parseInt(1) , aber es hatte auch keinen Effekt. Ich habe versucht, NumberInt(1) zu verwenden, habe aber den Fehler NumberInt is not defined .

So kann ich es nicht in meinem Code arbeiten lassen; Die äquivalente Abfrage über die Mongo-Shell funktioniert jedoch wie erwartet:

%Vor%

Ich habe gegoogelt und festgestellt, dass NumberInt im mongoose-int32 Paket vorhanden ist, aber es benötigt Mungo. Ich möchte kein Mungo als Abhängigkeit für mein Projekt hinzufügen, deshalb suche ich nach einer anderen Lösung.

    
rocknow 11.03.2017, 09:55
quelle

1 Antwort

3

Das Problem kommt vom Feldtyp status , das in Ihrem Dokument gespeichert ist

hier ist es

{ "status" : 1, ... }

aber Sie sollten das haben:

{ "status" : NumberLong(1), ... }

Konvertiere zuerst alle Statusfelder in NumberLong mit diesem Code (führe es direkt in der Shell aus)

%Vor%

Dann aktualisieren Sie einfach Ihren vorherigen Code wie folgt:

%Vor%

Dies funktionierte mit:

  • Knoten v 7.3.0
  • npm Paket mongodb 2.2.24
  • MongoDB 3.4.1
felix 13.03.2017, 11:35
quelle

Tags und Links