Ich habe diese Frage für C # und Perl beantwortet gefunden, aber nicht in der nativen Oberfläche. Ich dachte das würde funktionieren:
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
Die Abfrage ergab keine Ergebnisse. Ich habe die 4ecbe7f9e8c1c9092c000027 gefunden, indem ich db.theColl.find()
eine ObjectId ausgeführt und abgerufen habe. Diese Sammlung enthält mehrere tausend Objekte.
Ich habe alle Seiten gelesen, die ich auf der Website mongodb.org finden konnte, und habe sie nicht gefunden. Ist das nur eine seltsame Sache? Es scheint mir ziemlich normal zu sein.
Wenn Sie Node.js verwenden:
Bearbeiten: Korrigiert auf neue ObjectId (ID), nicht auf neue ObjectID (ID)
quelle
import { ObjectId } from "mongodb";
arbeitet für den schickeren JS.Noch einfacher, insbesondere bei Tab-Vervollständigung:
Bearbeiten: Funktioniert auch mit dem
findOne
Befehl für eine schönere Ausgabe.quelle
db.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
db.test.findOneAndDelete(ObjectId('57eujhs76e7hs877e868'))
Wenn Sie diesen Ansatz in einem Befehl verwenden, wird ein Dokument gelöscht, auch wenn die ObjectId nicht mit der angegebenen ID übereinstimmt. Sie müssen genau so spezifizierendb.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
find()
, nicht umfindOneAndDelete()
.Sie haben es versäumt, doppelte Anführungszeichen einzufügen. Die genaue Abfrage lautet
quelle
Wenn Sie an der Mongo-Muschel arbeiten, lesen Sie bitte Folgendes: Antwort von Tyler Brock
Ich habe die Antwort geschrieben, wenn Sie mongodb mit node.js verwenden
Sie müssen die ID nicht in eine konvertieren
ObjectId
. Benutz einfach :Diese Erfassungsmethode konvertiert die ID automatisch in ObjectId.
Andererseits :
db.collection.findOne({"_id":'4ecbe7f9e8c1c9092c000027'})
funktioniert nicht wie erwartet. Sie haben die ID manuell in konvertiertObjectId
.Das kann so gemacht werden:
quelle
Ich hatte gerade dieses Problem und tat genau das, was dokumentiert war und es funktionierte immer noch nicht.
Sehen Sie sich Ihre Fehlermeldung an und stellen Sie sicher, dass keine Sonderzeichen kopiert wurden. Ich habe den Fehler erhalten
Als ich zu Zeichen 43 ging, war es nur der Anfang meiner Objekt-ID nach den offenen Anführungszeichen, genau so, wie ich sie eingefügt habe. Ich setzte meinen Cursor dort und drückte die Rücktaste. Es schien nichts zu passieren, wenn es das offene Anführungszeichen hätte entfernen sollen. Ich drückte erneut auf die Rücktaste und entfernte das offene Anführungszeichen. Dann setzte ich das Anführungszeichen wieder ein und führte die Abfrage aus. Es funktionierte, obwohl es genau gleich aussah.
Ich habe in WebMatrix entwickelt und die Objekt-ID von der Konsole kopiert. Wenn Sie in WebMatrix von der Konsole kopieren, werden Sie wahrscheinlich einige unsichtbare Zeichen erkennen, die Fehler verursachen.
quelle
Sobald Sie die Mongo-CLI geöffnet haben, sind Sie mit der richtigen Datenbank verbunden und autorisiert.
quelle
In MongoDB Stitch-Funktionen kann dies mit BSON wie folgt durchgeführt werden:
Verwenden Sie dazu den
ObjectId
Helfer im BSON-Dienstprogrammpaket wie im folgenden Beispiel:quelle
Ich denke, du schreibst besser so etwas:
quelle
Um die Objectid-Methode zu verwenden, müssen Sie sie nicht importieren. Es befindet sich bereits auf dem Mongodb-Objekt.
quelle
TypeError: db.ObjectId is not a function
ObjectId("SOMETHING")
Wenn Sie Node.js verwenden:
In diesem req.user ist ObjectId-Format.
quelle
Einfach machen:
quelle
Mongo Shell
Version 3.2.7 nicht mehr.