Mongoose: Problem mit DBRefs - falsche Implementierung?

Erstellt am 28. Jan. 2014  ·  3Kommentare  ·  Quelle: Automattic/mongoose

Hallo,

Ich habe ein Problem damit, etwas zu verstehen, oder es ist fehlerhaft.

Lasst uns beginnen. Hier ist die Dokumentation zu DBRefs:
http://docs.mongodb.org/manual/reference/database-references/#dbrefs

Sie schreiben, dass die Struktur für das Dokument mit Referenz wie folgt sein sollte:

{
  "_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
  // .. application fields
  "creator" : {
                  "$ref" : "creators",
                  "$id" : ObjectId("5126bc054aed4daf9e2ab772"),
                  "$db" : "users"
               }
}

Schauen wir uns nun dieses Beispiel an (Beispiel1):
https://gist.github.com/hastebrot/1170907

Wenn ich diesen Code ausführe, habe ich so etwas:
Geschichte:

    "title": "A man who cooked Nintendo",
    "_creator": {
        "$oid": "52e7dcea3d9cd59c13702e3d"
    },
    "_id": {
        "$oid": "52e7dceb3d9cd59c13702e3e"
    },
    "fans": [],
    "__v": 0

Menschen:

    "name": "Aaron",
    "age": 100,
    "_id": {
        "$oid": "52e7dcea3d9cd59c13702e3d"
    },
    "stories": [],
    "__v": 0

Das Problem

In unserem Team haben wir eine kleine Anwendung, die in Java geschrieben ist und die Bibliothek für MongoDB verwendet, aber diese Bibliothek speichert Daten wie in der MongoDB-Dokumentation:

....//other fields
"user": {
        "$ref": "users",
        "$id": {
            "$oid": "52c6c497c08e6fcf37000001"
        }
    }

und ich kann keine Daten auffüllen, da es so aussieht, als ob es nur für die Mongoose-Implementierung funktioniert.

Korrigieren Sie mich, wenn ich falsch liege, aber für mich ist es so, als würden Sie DBRef nicht so speichern, wie es in der Dokumentation beschrieben ist.

new feature

Hilfreichster Kommentar

Immer noch kein Beitrag von einem Mongoose-Entwickler zu diesem Thema? Dies ist ein wiederkehrendes Problem, das immer wieder auftritt, wenn mehr als ein Treiber in dieselbe Datenbank schreibt und daraus liest.

Der Node-Treiber unterstützt DBRefs und ich finde es seltsam, dass Mongoose immer noch keine Unterstützung dafür hat.

Alle 3 Kommentare

+1
Das gleiche Problem mit einer PHP-Anwendung, die Doktrin Mongodb ODM verwendet. Derzeit kann ich meine bereits vorhandene Datenbank nicht mit Mongoose verwenden, da mongodb DBRefs-Objekte nicht zum Speichern von Referenzen verwendet werden.
Vielleicht sollte ein anderer Schematyp (Schema.DBRef?) hinzugefügt werden?
Das würde das Dokument mit den gegebenen Infos laden.

Immer noch kein Beitrag von einem Mongoose-Entwickler zu diesem Thema? Dies ist ein wiederkehrendes Problem, das immer wieder auftritt, wenn mehr als ein Treiber in dieselbe Datenbank schreibt und daraus liest.

Der Node-Treiber unterstützt DBRefs und ich finde es seltsam, dass Mongoose immer noch keine Unterstützung dafür hat.

Die Unterstützung von DBRefs zum Auffüllen hat keine wirklich hohe Priorität, da MongoDB-Dokumente empfehlen, dbref nicht zu verwenden . Sie können die Abfragen jederzeit selbst durchführen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen