En utilisant Java ... pas que cela soit important.MongoDB - DBRef à un DBObject
Avoir un problème et c'est peut-être juste un problème de conception.
J'affecte le champ "_id" à tous mes documents, même ceux qui sont intégrés. J'ai un document parent (et la collection pour ceux) qui a un document incorporé
J'ai donc quelque chose comme:
{ "_id" : "49902cde5162504500b45c2c" ,
"name" : "MongoDB" ,
"type" : "database" ,
"count" : 1 ,
"info" : { "_id" : "49902cde5162504500b45c2y",
"x" : 203 ,
"y" : 102
}
}
Maintenant, je veux avoir un autre document qui fait référence à mon « info » via un DBRef
, ne veulent pas une copie. Donc, je crée un DBRef
qui pointe vers la collection du document parent et spécifie le _id comme xxxx5c2y. Toutefois, l'appel fetch()
sur le DBRef
donne une valeur NULL.
Cela signifie-t-il que DBRef
et fetch()
fonctionne uniquement sur les champs "_id" d'entrée de collection de niveau supérieur?
Je m'attendais à ce que fetch()
consomme toutes les clés: valeurs dans les accolades du document .. mais peut-être que cela demande trop. Est-ce que quelqu'un sait?? Est-il impossible de créer des références inter-documents, sauf au niveau supérieur?
Merci
Merci pour vos commentaires. Ok, DBRef ... docs de premier niveau seulement. Je suis d'accord avec vos autres commentaires concernant la copie, mais si les choses changent et que l'on élabore un modèle d'événement pour mettre à jour de nombreuses localisations, cela doit être en place. Mon exemple (modèle de données) n'était pas vraiment représentatif du modèle de problèmes, c'est un cas où l'objet "info" est vraiment un méta-modèle dans mon problème sapce, qui est utilisé pour l'analyse de modèle. Ainsi, les modifications apportées au parent (et aux sous-documents du parent) doivent mettre à jour le méta-modèle. Je ne peux pas les intégrer car cela signifie que les changements doivent mettre à jour des millions de lieux. – Robert