Unterschied zwischen ObjectId und $Oid in MongoDB
-
Merkmale der
ObjectID
-
Unterschied zwischen
ObjectID
und$oid
in MongoDB -
Dokument in eine Sammlung mit
ObjectID
einfügen -
Methoden der
ObjectID
- Abschluss
MongoDB speichert alle Datensätze in einzelnen BSON-Dokumenten. Eine Kennung wird bereitgestellt, um jedes der Dokumente eindeutig zu identifizieren.
Die Kennung hilft dem Benutzer, das Dokument eindeutig zu lokalisieren, während er andere Dokumente durchsucht.
Abfragen funktionieren einfach mit Hilfe eines Identifikators und die Ergebnisse werden entsprechend generiert.
In jeder Sammlung hat jedes Dokument ein eindeutiges _id
-Feld, das als Primärschlüssel fungiert. Das Standardformat _id
ist die ObjectID
des Dokuments.
Merkmale der ObjectID
Eine ObjectID
fungiert als Identifikator eines einzelnen Dokuments innerhalb einer bestimmten Sammlung. Die ObjectID
ist ein 12-Byte-Feld vom Typ BSON.
Die Aufteilung der Felder ist wie folgt:
- Unix-Zeitstempel des einzelnen Dokuments wird durch die ersten vier Bytes dargestellt.
- Die Maschinen-ID, auf der der MongoDB-Server derzeit ausgeführt wird, wird durch die folgenden drei Bytes dargestellt.
- Prozess-ID wird durch die nächsten zwei Bytes dargestellt.
- Um die
ObjectID
zu inkrementieren, werden die letzten drei Bytes reserviert.
Format einer ObjectID
Die ObjectID
kann beim Erstellen eines Dokuments festgelegt werden. Es gibt zwei Möglichkeiten, einem Dokument die ObjectID
zuzuweisen.
- Bei der Erstellung weist der Benutzer dem Dokument selbst die
ObjectID
zu. - Das Dokument nimmt eine standardmäßige
ObjectID
an, die ihm vom MongoDB-Server zugewiesen wird.
Die ObjectID
ist in folgendem Format definiert:
ObjectId(<hexadecimal>)
Der Parameter <hexadezimal>
zur Definition einer ObjectID
ist optional. Wenn der Benutzer im Feld _id
einen Wert definiert, wird dieser Wert als ObjectID
dem Dokument zugewiesen.
Andernfalls stellt der MongoDB-Server dem Dokument eine ID bereit.
Hinweis: Es ist darauf zu achten, dass die vom Benutzer angegebene
ObjectID
für jedes Dokument innerhalb der Sammlung eindeutig ist.
Unterschied zwischen ObjectID
und $oid
in MongoDB
Beim MongoDB-Server gibt es keinen Unterschied zwischen einer ObjectID
und einer $oid
. Die beiden sind nur unterschiedliche Serialisierungsformate, die mit den neueren Shells eingeführt wurden.
Objekt-IDs werden mit Hilfe von $oid
des MongoDB-Servers dargestellt. Der Server verwendet Strict MongoDB Extended JSON
; Daher werden die Objekt-IDs wie folgt dargestellt:
{ "$oid": "<id>" }
Wie oben gezeigt, kann der Begriff $oid
verwendet werden, wenn nach einem bestimmten Dokument gesucht wird. Sie können beim Schreiben von Abfragen $oid
verwenden.
Andererseits kann die ObjectID
zum Erstellen von Dokumenten verwendet werden. Zusätzlich können die Methoden der ObjectID
verwendet werden, um bestimmte Werte aus der 12 Byte langen Objekt-ID zu erhalten.
Kurz gesagt, es gibt keinen großen Unterschied zwischen den beiden Entitäten auf dem MongoDB-Server.
Dokument in eine Sammlung mit ObjectID
einfügen
Wie im vorherigen Abschnitt besprochen, nimmt das Feld ObjectID
einen optionalen hexadezimalen
Parameter an. Wenn bei der Erstellung des Dokuments kein Wert für das Feld _id
festgelegt wird, legt der MongoDB-Server einen standardmäßigen, eindeutigen Wert für das Dokument in der Sammlung fest.
Die Syntax zum Einfügen eines einzelnen Dokuments in die Sammlung lautet wie folgt:
db.collectionName.insertOne()
Das Code-Snippet fügt ein Dokument in die Sammlung mit einem vom Server festgelegten Standardwert im Feld _id
ein.
Die Syntax zum Einfügen mehrerer Dokumente in die Sammlung lautet wie folgt:
db.collectionName.insertMany()
Das Code-Snippet fügt mehrere Dokumente in die Sammlung mit einem vom Server festgelegten Standardwert im Feld _id
ein.
Legen Sie das Feld ObjectID
fest
Der Benutzer kann das Feld _id
beim Erstellen eines Dokuments festlegen, vorausgesetzt, es ist eindeutig. Die Syntax zum Setzen der ObjectID
oder mit anderen Worten $oid
lautet wie folgt:
db.collectionname.insertOne({"_id":"1789473"})
Hier ist ein Beispiel für das Setzen einer ObjectID
eines Dokuments innerhalb einer Sammlung. Nehmen Sie die folgenden Entitäten an:
- Name der Datenbank:
officedb
- Name der Sammlung:
employee_officedb
Verwenden Sie die folgenden Befehle, um ein Dokument auf dem MongoDB-Server zu erstellen:
> use officedb
switched to db officedb
> db.createCollection("employee_officedb")
{ "ok" : 1 }
> db.employee_officedb.insert({ name : "asad", rank : 23})
WriteResult ({ "nInserted" : 1})
> db.employee_officedb.find().pretty()
{
"_id" : ObjectId ("8e12bn2a0ty562888ab93711"),
"name" : "asad"
"rank" : 23
}
Methoden der ObjectID
Vier Methoden erweitern das Konzept von ObjectID
in MongoDB. Jede der Methoden dient einer anderen Funktionalität, wie unten beschrieben.
- Die
str
-Methode: Diese wird verwendet, um die Objekt-ID in einem hexadezimalen Zeichenfolgenformat zu erhalten. - Die Methode
ObjectId.getTimestamp()
gibt den Zeitstempelteil des Objekts als Datum zurück. - Die Methode
ObjectId.valueOf()
: Das Hexadezimalformat eines gegebenen String-Literals wird von dieser Methode zurückgegeben. - Die Methode
ObjectId.toString()
: Diese Methode gibt die Objekt-ID in einem String-Format in JavaScript-Darstellung zurück.
Abschluss
Es gibt einen riesigen Raum, um die ObjectID
und $oid
auf dem MongoDB-Server zu erkunden. Es gibt keinen großen Unterschied zwischen den beiden, außer in der Darstellung.
Einige Shells verwenden die ObjectID
, während andere Shells das $oid
verwenden. Daher hängen Datenbearbeitung und -speicherung von der Version der Shell ab, die auf Ihrem Gerät installiert ist.
Verwenden Sie für die Definition von Dokumenten und deren IDs ObjectID
. Verwenden Sie andererseits beim Schreiben und Ausführen von Abfragen $oid
, um die gesamte Sammlung zu durchsuchen, um das erforderliche Dokument zu finden.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub