Mongoose: Problema com DBRefs - implementação errada?

Criado em 28 jan. 2014  ·  3Comentários  ·  Fonte: Automattic/mongoose

Olá,

Estou com problemas para entender algo ou está bugado.

Vamos começar. Aqui está a documentação sobre DBRefs:
http://docs.mongodb.org/manual/reference/database-references/#dbrefs

Eles escrevem que a estrutura do documento com referência deve ser:

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

Agora vamos dar uma olhada neste exemplo (exemplo1):
https://gist.github.com/hastebrot/1170907

Quando executo este código, tenho algo assim:
História:

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

Pessoas:

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

O problema

Em nossa equipe, temos pequenos aplicativos escritos em Java que usam biblioteca para MongoDB, mas esta biblioteca salva dados como na documentação do MongoDB:

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

e não consigo preencher dados porque parece que funciona apenas para implementação de mangusto.

Corrija-me se estiver errado, mas para mim é como se você não salvasse o DBRef como descrito na documentação.

new feature

Comentários muito úteis

Ainda não há entrada de nenhum desenvolvedor do Mongoose sobre esse problema? Este é um problema recorrente que continua surgindo quando você tem mais de um driver gravando e lendo no mesmo banco de dados.

O driver Node suporta DBRefs e acho estranho que o Mongoose ainda não tenha suporte para ele.

Todos 3 comentários

+1
Enfrentando o mesmo problema com um aplicativo php usando doutrina mongodb odm. Atualmente não posso usar meu banco de dados já existente com o mongoose porque os objetos mongodb DBRefs não são usados ​​para armazenar referências.
Talvez um outro tipo de esquema (Schema.DBRef?) deva ser adicionado?
Isso carregaria o documento com as informações fornecidas.

Ainda não há entrada de nenhum desenvolvedor do Mongoose sobre esse problema? Este é um problema recorrente que continua surgindo quando você tem mais de um driver gravando e lendo no mesmo banco de dados.

O driver Node suporta DBRefs e acho estranho que o Mongoose ainda não tenha suporte para ele.

O suporte a DBRefs para preenchimento não é realmente uma alta prioridade porque os documentos do MongoDB recomendam não usar dbref . Você sempre pode fazer as consultas sozinho.

Esta página foi útil?
0 / 5 - 0 avaliações