问题标签 [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.
ruby - 如何搜索 MongoDB 子文档部分匹配?
我在 MongoDB 数据库中有一组描述会议地点的文档。它还包含有关会议场所开放时间的信息。
例子:
我想搜索文档并仅返回文档,其中包含状态为“打开”的子文档。我似乎无法编写可以实现此目的的“查找”子句。
例如,我想要上面的文档,除了对象 ID 为 54ccbb91cbcb91146d000002 的“插槽”子文档之外,其他文档保持不变。
例如,这将返回整个文档:
(实际上位于一些看起来像这样的 Ruby 中):
我究竟做错了什么 ?
mongodb - 从聚合管道中的集合中减去子文档
deleted != null
我正在尝试从 mongodb 中检索文档并根据条件( )从数组中删除一些对象。这是我要定位的项目的简化示例:
成功的查询将返回相同的结果,但删除了其中一个图像对象,因为它具有 ISODate 而不是 null。像这样:
我尝试$unwind
对图像使用聚合,然后$match
只使用相关图像,但我现在需要重新创建文档,否则它会返回剩余的 3 个“展开”文档。
这是我到目前为止的位置:
有没有办法从剩余的文件中创建一个文档,或者我是否以完全错误的方式处理这个问题?
谢谢。
php - 如何使用php更新mongodb中具有键和值的子文档
嗨,我是 mongodb 的新手,我在这里使用 PHP。我想使用如下所示的数组将子文档更新为现有文档。
当我尝试调用以下函数时
它不会像预期的那样出现,而是会以不同的方式出现。请有人指导我这是更新此内容的正确方法。
原始数组:
预期输出:
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' 不是存储有效。
代码:
产生:
这就是我要的:
arrays - 检索子文档中数组的第一项而不获取其他子文档
在 MongoDB 中-如何仅检索属性中数组的第一项?
我有一个嵌套文档并使用它进行查询$text
(但这没关系,普通查询也不起作用)
我的文档结构:
当我跑步时
我在propA.prop1
. 当我改为跑步时
我只得到了第一个项目,propA.prop1
但我也得到了里面的所有其他项目propA
(比如propA.prop2
, propA.prop3
, ...)
我想以某种方式组合这两个查询,但不知道如何(除非在代码中检索)。
python - 如何附加到 RethinkDB 中可能不存在的子文档?
我有一个 JSON 模式来验证这样的文档:
验证不需要该"galleries"
部分(某些文档可能没有图库),并且该<category>
部分只是一个任意字符串,例如。“截图”。
"galleries"
如果既不存在也不<category>
保证存在,如何将图像附加到画廊项目?假设我想将图像附加到“屏幕截图”画廊。我是否必须先进行两次查询并检查是否存在,或者是否可以原子地执行此操作?
编辑:我目前的解决方案是查询游戏galleries
字段,.default({})
然后使用 Python 处理生成的 dict 并使用合并进行更新。
node.js - 如何在不使用 _id 字段但使用多个属性的情况下在 mongoose 中查找子文档
我有一个这样的示例模式 -
现在,我不想将 _id 字段暴露给外界,这就是为什么我不会将它发送给任何地方的客户。现在,我的评论模式中有两个重要属性(用户名,url)我想要做的是更新满足的子文档的内容
- feed.url
- 评论网址
- 评论.用户名
如果comment.username
它与我的客户端值相同,req.user.username
则更新comment.text
其 url 由客户端在req.body.url
变量中提供的记录的属性。
我认为一种耗时的方法是首先找到具有给定 url 的提要,然后遍历所有子文档以找到满足的文档,comment.url==req.body.url
然后检查是否满足comment.username==req.user.username
,更新评论对象。但是,我认为必须有一种更简单的方法来做到这一点?我已经试过了——
但即使在comments.url
orcomments.username
匹配其他子文档时也会更新
我也试过
查找与关联的文档的_id,url
但它返回_id
子文档中的所有
arrays - 从数组中查找并返回第一个匹配的子文档(Meteor / Mongo)
如何在“任务”数组中找到并返回与完成匹配的第一个子文档:真?
usingfindOne
返回整个文档.. 是否有返回子文档的另一个函数?
mongodb - 更新子数组中的第 3 层文档
我有一个如下文件(在项目集合中):
我可以completed: true
使用此方法设置任务:
如果我将文档更改为:
如何设置completed: true
任务?
到目前为止我有
node.js - 查找具有同时匹配两个(或更多)属性的子文档的文档
在 Node with Mongoose 中,我想在集合中找到一个对象Content
。它有一个名为的子文档列表,其中users
包含属性stream
和。我这样做是为了在该字段中获取具有特定用户属性的所有文档。user
added
_id
users.user
这似乎有效(尽管我不确定是否.sort
真的在这里工作。但是,我想匹配两个字段,如下所示:
这似乎不起作用。这样做的正确方法是什么?
这是一个示例文档