407 Stimmen

Wie kann ich in der Mongo-Konsole nach einem Objekt anhand seiner ObjectId suchen?

Ich habe eine Antwort auf diese Frage für C# und Perl gefunden, aber nicht in der nativen Schnittstelle. Ich dachte, dies würde funktionieren:

db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )

Die Abfrage ergab keine Ergebnisse. Ich habe die 4ecbe7f9e8c1c9092c000027 gefunden, indem ich db.theColl.find() und Erfassen einer ObjectId. Diese Sammlung enthält mehrere tausend Objekte.

Ich habe alle Seiten gelesen, die ich auf der Website mongodb.org finden konnte, aber ich habe nichts gefunden. Ist das einfach eine seltsame Sache? Für mich scheint es ziemlich normal zu sein.

9voto

mina_anwer Punkte 91

Ich denke, Sie sollten etwas in dieser Art schreiben:

db.getCollection('Blog').find({"_id":ObjectId("58f6724e97990e9de4f17c23")})

5voto

Oliver Wolf Punkte 192

Sobald Sie die Mongo-CLI geöffnet, verbunden und auf der richtigen Datenbank autorisiert haben.

Das folgende Beispiel zeigt, wie man das Dokument finden mit der _id=568c28fffc4be30d44d0398e aus einer Sammlung namens "Produkte":

db.products.find({"_id": ObjectId("568c28fffc4be30d44d0398e")})

3voto

Patrick Graham Punkte 902

Ich hatte gerade dieses Problem und habe genau das getan, was in der Dokumentation steht, und es hat trotzdem nicht funktioniert.

Sehen Sie sich Ihre Fehlermeldung an und vergewissern Sie sich, dass Sie keine Sonderzeichen hineinkopiert haben. Ich erhielt die Fehlermeldung

SyntaxError: illegal character @(shell):1:43

Als ich zu Zeichen 43 ging, war es nur der Anfang meiner Objekt-ID, nach den offenen Anführungszeichen, genau wie ich es eingefügt hatte. Ich setzte den Cursor dorthin und drückte die Rücktaste, aber nichts schien zu passieren, obwohl das offene Anführungszeichen hätte entfernt werden müssen. Ich drückte erneut die Rücktaste und das offene Anführungszeichen wurde entfernt, dann fügte ich das Anführungszeichen wieder ein und führte die Abfrage aus, und sie funktionierte, obwohl sie genau gleich aussah.

Ich habe die Entwicklung in WebMatrix durchgeführt und die Objekt-ID aus der Konsole kopiert. Wenn Sie von der Konsole in WebMatrix kopieren, werden wahrscheinlich einige unsichtbare Zeichen übernommen, die Fehler verursachen.

3voto

Kushal Bhalaik Punkte 3270

In den MongoDB Stitch-Funktionen können Sie dies mit BSON wie unten:

Verwenden Sie die ObjectId Hilfsprogramm im BSON-Utility-Paket zu diesem Zweck wie im folgenden Beispiel:

var id = "5bb9e9f84186b222c8901149";  
BSON.ObjectId(id);

-1voto

Miguel Peguero Punkte 448

Um die Objectid-Methode zu verwenden, brauchen Sie sie nicht zu importieren. Sie ist bereits im Mongodb-Objekt enthalten.

var ObjectId = new db.ObjectId('58c85d1b7932a14c7a0a320d');
db.yourCollection.findOne({ _id: ObjectId }, function (err, info) {
   console.log(info)
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X