问题标签 [subdocument]

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.

0 投票
0 回答
351 浏览

ruby - 如何搜索 MongoDB 子文档部分匹配?

我在 MongoDB 数据库中有一组描述会议地点的文档。它还包含有关会议场所开放时间的信息。

例子:

我想搜索文档并仅返回文档,其中包含状态为“打开”的子文档。我似乎无法编写可以实现此目的的“查找”子句。

例如,我想要上面的文档,除了对象 ID 为 54ccbb91cbcb91146d000002 的“插槽”子文档之外,其他文档保持不变。

例如,这将返回整个文档:

(实际上位于一些看起来像这样的 Ruby 中):

我究竟做错了什么 ?

0 投票
1 回答
474 浏览

mongodb - 从聚合管道中的集合中减去子文档

deleted != null我正在尝试从 mongodb 中检索文档并根据条件( )从数组中删除一些对象。这是我要定位的项目的简化示例:

成功的查询将返回相同的结果,但删除了其中一个图像对象,因为它具有 ISODate 而不是 null。像这样:

我尝试$unwind对图像使用聚合,然后$match只使用相关图像,但我现在需要重新创建文档,否则它会返回剩余的 3 个“展开”文档。

这是我到目前为止的位置:

有没有办法从剩余的文件中创建一个文档,或者我是否以完全错误的方式处理这个问题?

谢谢。

0 投票
1 回答
524 浏览

php - 如何使用php更新mongodb中具有键和值的子文档

嗨,我是 mongodb 的新手,我在这里使用 PHP。我想使用如下所示的数组将子文档更新为现有文档。

当我尝试调用以下函数时

它不会像预期的那样出现,而是会以不同的方式出现。请有人指导我这是更新此内容的正确方法。

原始数组:

预期输出:

0 投票
1 回答
484 浏览

python - MongoDB如何使用包含子文档的自定义键创建一个数组

好吧,所以使用 Python 和 MongoDB,我试图在数组中嵌入一个子文档,并在数组中使用自定义键值。我正在尝试各种不同的方法来做到这一点,但我无法弄清楚我做错了什么,所以我暂时选择了下面的工作代码。多次尝试总是导致错误:

在 _check_write_command_response raise OperationFailure(error.get("errmsg"), error.get("code"), error) pymongo.errors.OperationFailure: 'followedBy..first.rule' 中的虚线字段 'first.rule' 不是存储有效。

代码:

产生:

这就是我要的:

0 投票
1 回答
341 浏览

arrays - 检索子文档中数组的第一项而不获取其他子文档

在 MongoDB 中-如何仅检索属性中数组的第一项?

我有一个嵌套文档并使用它进行查询$text(但这没关系,普通查询也不起作用)

我的文档结构:

当我跑步时

我在propA.prop1. 当我改为跑步时

我只得到了第一个项目,propA.prop1但我也得到了里面的所有其他项目propA(比如propA.prop2, propA.prop3, ...)

我想以某种方式组合这两个查询,但不知道如何(除非在代码中检索)。

0 投票
1 回答
105 浏览

python - 如何附加到 RethinkDB 中可能不存在的子文档?

我有一个 JSON 模式来验证这样的文档:

验证不需要该"galleries"部分(某些文档可能没有图库),并且该<category>部分只是一个任意字符串,例如。“截图”。

"galleries"如果既不存在也不<category>保证存在,如何将图像附加到画廊项目?假设我想将图像附加到“屏幕截图”画廊。我是否必须先进行两次查询并检查是否存在,或者是否可以原子地执行此操作?

编辑:我目前的解决方案是查询游戏galleries字段,.default({})然后使用 Python 处理生成的 dict 并使用合并进行更新。

0 投票
1 回答
218 浏览

node.js - 如何在不使用 _id 字段但使用多个属性的情况下在 mongoose 中查找子文档

我有一个这样的示例模式 -

现在,我不想将 _id 字段暴露给外界,这就是为什么我不会将它发送给任何地方的客户。现在,我的评论模式中有两个重要属性(用户名,url)我想要做的是更新满足的子文档的内容

  1. feed.url
  2. 评论网址
  3. 评论.用户名

如果comment.username它与我的客户端值相同,req.user.username则更新comment.text其 url 由客户端在req.body.url变量中提供的记录的属性。

我认为一种耗时的方法是首先找到具有给定 url 的提要,然后遍历所有子文档以找到满足的文档,comment.url==req.body.url然后检查是否满足comment.username==req.user.username,更新评论对象。但是,我认为必须有一种更简单的方法来做到这一点?我已经试过了——

http://www.tagwith.com/question_305575_how-to-find-and-update-subdocument-within-array-based-on-parent-property找到

但即使在comments.urlorcomments.username匹配其他子文档时也会更新

我也试过

查找与关联的文档的_id,url但它返回_id子文档中的所有

0 投票
2 回答
1337 浏览

arrays - 从数组中查找并返回第一个匹配的子文档(Meteor / Mongo)

如何在“任务”数组中找到并返回与完成匹配的第一个子文档:真?

usingfindOne返回整个文档.. 是否有返回子文档的另一个函数?

0 投票
0 回答
32 浏览

mongodb - 更新子数组中的第 3 层文档

我有一个如下文件(在项目集合中):

我可以completed: true使用此方法设置任务:

如果我将文档更改为:

如何设置completed: true任务?

到目前为止我有

0 投票
1 回答
52 浏览

node.js - 查找具有同时匹配两个(或更多)属性的子文档的文档

在 Node with Mongoose 中,我想在集合中找到一个对象Content。它有一个名为的子文档列表,其中users包含属性stream和。我这样做是为了在该字段中获取具有特定用户属性的所有文档。useradded_idusers.user

这似乎有效(尽管我不确定是否.sort真的在这里工作。但是,我想匹配两个字段,如下所示:

这似乎不起作用。这样做的正确方法是什么?


这是一个示例文档