Mongoose: Problème avec DBRefs - mauvaise implémentation ?

Créé le 28 janv. 2014  ·  3Commentaires  ·  Source: Automattic/mongoose

Bonjour,

J'ai du mal à comprendre quelque chose ou c'est buggé.

Commençons. Voici la documentation sur les DBRefs :
http://docs.mongodb.org/manual/reference/database-references/#dbrefs

Ils écrivent que la structure du document avec référence devrait être :

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

Voyons maintenant cet exemple (exemple1) :
https://gist.github.com/hastebrot/1170907

Quand je lance ce code j'ai quelque chose comme ça :
Récit:

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

Gens:

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

Le problème

Dans notre équipe, nous avons une petite application écrite en Java qui utilise la bibliothèque pour MongoDB mais cette bibliothèque enregistre les données comme dans la documentation MongoDB :

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

et je ne peux pas remplir les données car il semble que cela ne fonctionne que pour la mise en œuvre de la mangouste.

Corrigez-moi si je me trompe, mais pour moi, c'est comme si vous n'enregistriez pas DBRef comme décrit dans la documentation.

new feature

Commentaire le plus utile

Toujours aucune contribution d'un développeur Mongoose sur ce problème ? Il s'agit d'un problème récurrent qui revient sans cesse lorsque plusieurs pilotes écrivent et lisent dans la même base de données.

Le pilote Node prend en charge les DBRefs et je trouve étrange que Mongoose ne le prenne toujours pas en charge.

Tous les 3 commentaires

+1
Confronté au même problème avec une application php utilisant la doctrine mongodb odm. Actuellement, je ne peux pas utiliser ma base de données déjà existante avec mongoose car les objets mongodb DBRefs ne sont pas utilisés pour stocker des références.
Peut-être qu'un autre type de schéma (Schema.DBRef ?) devrait être ajouté ?
Cela chargerait le document avec les informations fournies.

Toujours aucune contribution d'un développeur Mongoose sur ce problème ? Il s'agit d'un problème récurrent qui revient sans cesse lorsque plusieurs pilotes écrivent et lisent dans la même base de données.

Le pilote Node prend en charge les DBRefs et je trouve étrange que Mongoose ne le prenne toujours pas en charge.

La prise en charge des DBRefs pour le peuplement n'est pas vraiment une priorité élevée car la documentation de MongoDB recommande de ne pas utiliser dbref . Vous pouvez toujours faire les requêtes vous-même.

Cette page vous a été utile?
0 / 5 - 0 notes