mongodb - spring data mongo使用@DBRef,怎么查询指定字段的集合
高洛峰
高洛峰 2017-04-28 09:06:08
0
3
793

我需要查询Archive表,获取Archive.title和User.name字段的结果集(按需),请问可以怎么操作?没找到答案,请指点一二,谢谢!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(3)
伊谢尔伦

Mongodb ne prend pas en charge la jointure et votre dbref n'est pas en mode de chargement paresseux, donc lors de la vérification de l'archive, l'utilisateur sera également trouvé.
Vous pouvez utiliser des instructions de requête telles que hsql d'hibernate pour implémenter archive.title et archive.user, mais vous ne pouvez pas interroger aechive.user.name seul.
Mongodb est une base de données non relationnelle, qui encourage la redondance des champs et la redondance des requêtes, donc la situation que vous avez mentionnée est vraiment difficile à mettre en œuvre

某草草
    @Query(value = "{'id':?0, 'disabled':false}", fields = "{'$id':1, 'success_ret_codes':1}")
    Stream findSuccessRetCodes(String streamId);

En utilisant les champs ci-dessus, un seul champ peut manquer et les autres champs sont nuls.
Mais les données de la table commune ne peuvent pas être interrogées, car la table Archive stocke l'ID et le nom de la table commune. , donc ici seulement j'ai découvert l'ID, je l'ai testé et j'ai directement vérifié le nom de la table commune et signalé une erreur. Alors voilà.

刘奇

J'ai rencontré le même problème que vous, et je n'ai pas trouvé de moyen d'obtenir uniquement certains champs dans certains objets DBRef. Même solution.
Pour votre problème, vous pouvez essayer la méthode de cet article. Mon problème est un peu plus compliqué que le vôtre :
http://blog.csdn.net/congcong...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal