问题标签 [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.
mongodb - 如何检索子文档数组中的所有文档,如果有任何重复的字段如何检索最新的?
我有下面这样的数据库结构。
在此子文档数组中有一个重复项。我需要编写 mongo db 查询来检索所有子文档,如果有任何重复项,那么根据“生成的”值我需要重新获取最新的值,如下所示。
有没有办法像使用 mongo db 查询一样获取数据?
mongodb - 当所有 $and 条件匹配相同的子文档时匹配的 MongoDB find()?
如果我有一组如下所示的 MongoDB 文档,我该怎么做才能得到一个 find() 结果,它只返回有 2 只宠物都喜欢肝脏的家庭?
这是我期望的工作:
这是文档集合:
我最终得到的是两个家庭,因为他们都至少有一种食物被标记为 allLike 的真实食物。如果任何食物子文档匹配,则 $and 中的两个条件似乎为真,但我想要的是两个条件作为一对匹配条件。
照原样,我让琼斯一家回来(如我所愿),但也让史密斯(我没有)。Smith 被返回是因为 chicken 子文档的 allLike 设置为 true,并且liver 子文档的名称为“liver”。这些条件在不同的食物子文档中匹配。我希望它们在食品文件上成对匹配。
显然,这段代码不是真正的用例。我有一个,但我已经简化了它以保护无辜者......
node.js - 在 mongodb 中:当数组被覆盖时,子文档会被删除吗?
在下面的代码片段中,我使用的是 mongoose 和 mongo db。TestSchema 的 arr 属性的元素在第二次保存后具有不同的_id。这是否意味着第一次保存后的子文档在第二次保存后被自动删除?还是我必须在进行第二次保存之前明确删除它?
mongodb - Mongo 查询前 N 个子文档
我在 MongoDB 的用户集合中有以下数据:
我正在尝试计算整个集合的第一个 appId。因此,对于每个用户,我需要获取他们的第一个 allowedAppId,即该 appId 的组,并获取整个集合的计数。
对于上面的数据,我试图得到这个:
一旦我开始工作,我将尝试将日期参数放在 allowedAppIds.createdDate 中的创建日期周围,以进一步按日期过滤。
我对 Mongo 还是很陌生,所以如果这是基本的,我很抱歉。我在 google 等上看到了很多示例,但找不到任何可以使用聚合管道从子文档中获得前 1 条记录的东西。
通过在我的管道中执行此操作,我确实获得了对实际具有 allowedAppIds 的记录的过滤(并非所有用户文档都有 allowedAppId 子文档):
但我仍然无法从那里获取第一个与 createdDate 相关联的 appId。
node.js - mongoose - 引用子文档的 ObjectId
ModelA中的 ObjectId是否可以引用 modelB中的子文档?
mongodb - 更新了 MongoDB 中的嵌套子文档
我正在尝试更新 mongodb 中的嵌套子文档,
更新查询
上面的查询只更新第一条记录(task.id = "1" 创建日期)它不更新 task.id="2" 子文档!!!!
javascript - mongodb 保存子文档时的意外行为
我在猫鼬.find
查询后这样做:
打印这个:
所以它似乎工作对了吗?
但是,如果我查看我的数据库,我会看到其中的子文档videos
仅由一个fakeName
字段组成,而我正在修改的对象没有fakeName
字段。
这是怎么回事?
我将那里的第一行改为
data2[0].markModified('videos');
这似乎解决了它。
我仍然会根据对正在发生的事情的解释接受答案。
mongodb - 带有子文档的 mongoDB 文档
我有以下结构:
- 收藏
- 文档
- 信息
- 字段 1
- 字段 2
- 字段 3
该文档将像以前一样开始,我需要通过以下搜索找到该文档:
db.document.find( { "message.field1": "a" } )
找到后,将另一条消息添加为数组,最终结果如下:
- 收藏
- 文档
- 信息
- 字段 1
- 字段 2
- 字段 3
- 消息(新文档)
- 字段 1
- 字段 2
- 字段 3
我正在尝试做:
但是 mongo 似乎没有找到我正在搜索的子文档......是否可以有多个数组?我在想也许 mongodb 不允许有多个同名的子文档?
多谢你们,
大卫
mongodb - MongoDB 更新子文档属性
让我首先说对不起,如果这个问题得到了回答,但我无法在这个网站上找到其他问题来满足我的需求,更重要的是,工作。
我有以下示例文档,其中包含“地址”的子文档:
我需要做的是关闭带有end
属性的现有地址记录,并为带有新start
和value
属性的新地址添加新行。最终,我需要再次执行此操作,因此代码需要更新end
不存在的子文档记录。
下面的代码不起作用,但据我所知:
这给出了错误:
谁能指出我正确的方向?
mongodb - MongoDB子文档
在 mongodb 的新版本中有什么方法可以:
- 在文档内的数组中选择子文档或对象,而不是检索父文档,
- 然后运行并再次在内存中搜索项目/子文档。
假设一个用户文档中有一个项目列表,其中一个项目的价格超过 50 美元。
我只想要这个项目而不是检索用户文档,然后再次搜索某个项目。
我读到它可能会在下一个版本中出现,但找不到。谢谢 !