问题标签 [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 - DBRefs vs Map/Reduce vs 手动参考
我遇到了三种不同的“加入”集合的方式:
- 手动保留对您希望加入目标集合的集合的“外键-esk”引用
- 使用DBRefs
- 编写一系列Map/Reduce函数来维护关系
有人可以解释每个人的好处和我应该什么时候吗?
我的第一印象是 Map/Reduce 用于大型、常用的集合,而另外两个主要用于小型/快速查询。
mongodb - query based on matching elements in DBRef list for mongodb using spring-data-mongodb
I am pretty new to mongodb. I am using spring-data-mongodb for my queries from java. Please guide me if this is achievable.
Say I have two objects "Car" and "User" as following, where car has list of users,
I want to find all cars for a user, (find all cars where car.users has given user)
Is it possible to achieve using spring-data-mongodb?
It's pretty easy if there was only one DBRef element, eg, for company I can write a query like this,
But, how to achieve this if there is a list of elements referenced as DBRef??
Thanks for help.
java - 查询mongodb dbref内部字段
我需要隐藏所有 isActive 标志设置为 false 的用户相关数据。在许多集合中,我使用了 DBRef 类型的用户集合(大约 14 个集合),每个集合包含超过 1000 万条记录。
让我在示例的帮助下更正确地解释它。
假设我有两个集合:
- 用户
- 接触
用户集合包含以下字段:
- 名字(字符串)
- 姓氏(字符串)
- isActive(布尔值)
联系人集合包含以下字段:
- Contacter (User) 声明为 DBref 类型。
- 联系人(用户)声明为 DBRef 类型。
- 联系状态(字符串)
现在我想触发一个查询,它将获取所有联系人
ContactStatus = "Confirmed" && Contacter.isActive = true && Contactee.isActive = true
就 mongodb 而言,查询将是这样的:
但是当我在 mongo shell 中运行这个查询时,它总是返回一个零记录。
所以这里的问题是 1) 是否可以在 DBRef 的内部字段上触发查询?2)如果没有,那我怎么能做到这一点。
注意 - 在这个阶段,我无法修改我的数据模型。在“in”查询的帮助下,我可以做到这一点。但它最终会在我需要隐藏该用户的任何地方增加一次往返。
目前我正在使用 mongodb-2.4.5 和 Spring-Data-MongoDB-1.2.3 jar
到目前为止,我的代码是这样的 -
mongodb - GWT 的 RequestFactory 函数调用中的 MongoDB DBRef 处理
我有与 MongoDB 的 DBRef 相关的问题。想象一下这个场景:
所以给定的组文档有 3 个用户 DBRef。在 Group 的 java 类中,成员被标记为 morphia 作为@Reference:
问题:当调用 RequestFactory 函数 getGroup().with("members") 时,RequestFactory 是否会在只有 1 个 DB 访问中获得所有成员?
或者在上面给出的场景中,请求工厂是否会为 Group 文档中的每个 DBRef 进行 3 个 DB 访问?
非常感谢您提前。
mongodb - 如何更改 MongoDB 的 DBRef?
因此,我将 MongoDB 用于一个项目,并且我有一台服务器用于对我的站点进行所有测试,并且我在几个表上使用了 DBRef,这创建了如下内容:
"comment": {
"$ref": "user",
"$id": ObjectId("xxxx"),
"$db": "dev_server"
}
现在我们有一个新的服务器用于实际的生产站点。由于我们使用真实信息,因此我们导出了数据库并将其放入一个名为“prod_server”的新数据库中。现在,DBRef 与上面的一样。我试图更新 $db 的值,但我得到了这个:
"comment": {
"$db": "prod_server"
"$id": ObjectId("xxxx"),
"$ref": "user",
}
随着这种变化,网络崩溃(mongo 自动更改为字母顺序)。我对此进行了搜索,发现 DBRef 的顺序很重要,否则它将不起作用。
那么为什么会有这个问题:“如何更改 DBRef”并保持正确的顺序?我为此使用了控制台和rockmongo,但它们都不起作用。
谢谢
mongodb - Mongodump 使用 DBRef 标准和索引?
我想转储数据库的某些部分,尤其是使用 -q / --query 选项的集合的某些部分。这是我正在做的事情:
转储正在运行,但速度非常慢。有 3M 个对象,并且pipe
属性上有一个索引,所以事情不应该那么慢。看起来查询正在扫描整个集合。
有任何想法吗 ?
谢谢
java - 使用spring数据(dbref)在mongo中映射类型字段的参考值
我的文档中有一个映射字段(键 = 内容类型,值 = 内容),我希望将值部分(内容,这是另一个文档)作为引用对象保存在 mongodb 中。
例如,对于内容类型“CONTENT_TYPE_X”,它应该保存为
“相关内容”:{“CONTENT_TYPE_X”:DBRef(“内容”,ObjectId(“51ea2c0167e855d6b3d3dda3”)}
对于正常的字段参考可以使用@DBREF
,例如。
但是当然,在这种情况下,仅仅通过 put 是行不通的@DBRef
,是否有可能实现我所说的?
非常感谢。
php - MongoDB - PHP 手册参考方法适用性
MongoDB新手在这里。我对引用有第一种方法,我的主要疑问是我是否针对我的情况使用了适当的策略(手动引用)。
在同一个数据库中处理 2 个集合(用户、消息),让我们以存储在用户集合中的文档为例:
以及存储在消息集合中的文档示例(从其他用户发送到“pluto”上方的用户):
登录的用户('pluto')可以看到他从其他用户收到的所有消息,但是,我不想打印'from_uid'值,我想用发件人的用户名替换它。
我的主要疑问是手动引用是否适合这种情况,因为使用这种技术(如果我没有错过理解所有内容),打印消息列表将涉及:
- 用于打印消息列表的“查询”
- 另一个“查询”,用于从其他集合中检索每条消息的用户名。此外,如果用户收到 1000 条消息,这种方法将不得不运行 1001 查询?
我的第二个疑问是是否有办法直接合并或替换两个游标的结果
java - 在使用 java 获取文档时在 mongo 查询中传递 DBRef
要形成的查询:db.collectionB.find({type: DBRef("collectionA", NumberLong(47))});
集合 A 和集合 B 中有许多文档。我想搜索collectionB中“type”指的是collectionA中“_id”是NumberLong(47)的文档。
它使输出为空。为什么?
javascript - Nodejs + mongodb:如何查询 $ref 字段?
我正在使用带有 nodejs REST 服务的 MongoDB,该服务公开了我存储在其中的数据。我有一个关于如何查询使用 $ref 的数据的问题。
这是一个 Object 的示例,其中包含对 anther 集合中另一个对象(详细信息)的引用:
实际上,使用 Node.js 和 mongodb 模块,我执行以下操作:
事实上,我做了 2 个查询,得到了 2 个对象。这是一种“延迟加载”(不完全是但几乎)
我的问题很简单:是否可以在一个查询中检索整个对象图?
谢谢