问题标签 [dbref]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - DBRef 类型的 mongodb 查询
如何在 mongodb shell 中将此查询转换为有效的 mongodb 查询。
cars.owner
这里是 DBRef,但$ref
无效
我收到此错误:
我的目标是弄清楚是否有任何汽车由不同的收藏品“拥有”然后是用户。
java - 将 DBRef 解析为 Json
我在 MongoDB 的规范化数据模型结构中收到以下错误:
这是由这一行引起的:
具体toJson()
部分。我的文档中有一个 DBRef 对象,因此我可以引用另一个集合中的文档。嵌入式文档结构不是选项。那么我该如何解决这个问题呢?
spring - 在 Mongo 中使用双向引用时的 Spring 应用程序设计
我有两个类人和任务。这是一对多的关系:一个人有一个任务列表,一个任务属于一个人。
我的应用程序有两个视图。在其中一个中,我需要显示与每个人相关的人员和任务。在另一个中,我需要显示与之关联的任务和人员。
我的第一个想法是在 Mongo中使用双向引用。因此,一个人将有一个任务 ID 列表,而一个任务将有一个人 ID。
像这样:
和:
但是我不知道如何设计我的 Spring 应用程序来查找所有 Persons 并构建一个包含嵌入其中的任务列表的单个 json 以发送到 UI。我正在使用 MongoOperations 来查找我使用的所有 Persons
findAll(Person.class)
。由于我没有在 Persons 中嵌入 Tasks 文档,因此这些对象只有 Tasks Id 的列表。获取任务时也是如此:我想将 Person 添加到我将发送到 UI 的 JSON 中。
我尝试使用@DBref
并将任务列表添加到人员和人员到任务,但这以堆栈溢出结束,因为每个任务都有一个人,一个人有一个任务,每个任务都有一个人等等。
mongodb - 在 MongoDB 中使用双向引用进行查询
我有两节课:
当我查询以查找所有人员时,任务列表中会填充相关的任务。这就是我想要的。
当我查询以查找所有任务时,我希望收到一个带有关联人员的任务对象,但我收到的人员字段为空。我也想收到相关的 Person 。
mongodb - 如何使用 DBRef 在 Mongodb 中显示来自 2 个集合的数据
我的 MongoDB 中有两个主要集合,用户和地址。我在我的第一个集合(用户)中使用“$ref”和“$id”来引用第二个集合(地址)的文档。我想编写一个查询来显示用户及其地址的详细信息。
这是我的第一个集合“用户”。它有 1 个文件
这是我的第二个收藏“地址”。它有3个文件
我已经写了这段代码,但它不工作。当我运行它时它显示单词'null'
node.js - 如何使用 $lookup 和 DbRef 加入 MongoDB 和 NodeJS 中的两个集合?
如果我有两个集合,其中一个集合有 dbref,如何使用 $lookup 和 dbref 加入?
java - Spring AbstractMongoEventListener 不触发
上下文:Java8 应用程序,Spring MongoDB 1.9.1
我有一个包含 A 实体的集合,以及另一个包含 B 实体的集合。在我的域模型中,实体 A 有一个 B 集合作为 DBRef 像这样
此外,我注册了两个 AbstractMongoEventListener,一个用于 A,另一个用于 B。如果我直接通过 MongoTemplate.findById() 获取类型为 A 或 B 的文档,则触发 onAfterConvert() 方法正常。但是,如果我只是获取 A,我希望也会为 A 的 DBRef 列表中的每个项目 B 触发 onAfterConvert 方法。实际上,它不是。
我冒险猜测这是按设计工作的,另一方面,我不明白为什么 onAfterConvert 不应该适用于从数据库加载的任何实体/文档的原因。
长话短说,在加载 A 之后,我需要对 B 的所有项目进行一些后期处理。有没有人对此有一个优雅的解决方案?
java - Spring Data Mongo 延迟加载
我正在尝试使用 Spring Data Mongo 的@DBRef(lazy = true)
特性来延迟加载关联,但它似乎不起作用。即使它加载了Mainobject
一个空的ReferencedObject
,在引用对象内部也有一个CGLIB$CALLBACK_0
代理对象已经加载了关联。这不是打败了延迟加载的概念吗?此外,当我将对象返回给客户端时,它会返回两次关联:
延迟关联的目标不是仅在某些方法调用之后获取对象(getRefObject()
例如)吗?此外,我看不到如何在加载后从其代理访问获取的对象,因为它是私有属性并且没有访问器...
java - Spring with MongoRepository:DBRef
我正在尝试使用 spring 中的 dbref 函数。
我的代码:
Poi 类由不同类型的 poi 实现(例如 Culture)。我想将我的 Tour 对象中的 pois 引用为列表。
我做一个 POST 以在我的 pois 集合中存储一个 poi。
问题:当我使用 poi 对象的 objectID-reference 对我的游览进行 POST 时,我在游览中的 poi 列表始终为空。
我理解@DBRef 是对的,不是吗?
编辑1:错误消息
问题是:假设您在数据库中有两个 pois,分别用“poi_id_1”和“poi_id_2”引用。现在我开始对 /tour/add 的 API 调用,其中包含以下 JSON 数组(省略其他参数):
"poiList": [{"id": "poi_id_1"}, {"id":"poi_id_2"}]
我得到一个200。
但是:当我开始查询旅行时,我得到"poiList": [null]
了结果。(省略其他论点)
提前感谢您的帮助:)
mongodb - 从另一个集合中删除 dbref 元素
我有一个包含元素的集合会话
我还有另一个包含 CWSession 的 dbRed 的集合:
我使用 mongo 模板删除会话
它工作正常,会话在第一个集合中被删除,但仍然在第二个集合中,你能告诉我我可以用什么来删除第二个集合中的引用吗?并提前感谢您。