MongoDB查询以查找数组的第一个元素的属性

保罗·德雷珀

我在MongoDB中有以下数据(简化了我的问题所需要的内容)。

{
    _id: 0,
    actions: [
        {
            type: "insert",
            data: "abc, quite possibly very very large"
        }
    ]
}
{
    _id: 1,
    actions: [
        {
            type: "update",
            data: "def"
        },{
            type: "delete",
            data: "ghi"
        }
    ]
}

我想要的是找到每个文档的第一个操作类型,例如

{_id:0, first_action_type:"insert"}
{_id:1, first_action_type:"update"}

(如果数据的结构不同,那很好,但是我需要以某种方式显示这些值。)

编辑:我已经尝试过db.collection.find({}, {'actions.action_type':1}),但是很明显,这返回了动作数组的所有元素。

NoSQL对我来说还是很新的。以前,我将所有这些内容存储在关系数据库中的两个表中,并执行类似的操作SELECT id, (SELECT type FROM action WHERE document_id = d.id ORDER BY seq LIMIT 1) action_type FROM document d

t

您可以在投影中使用$ slice运算符。(但是对于您要做什么,我不确定在更新数组时数组的顺序是否保持不变。请记住)

db.collection.find({},{'actions':{$slice:1},'actions.type':1})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找包含“-”的数组的第一个元素

数组第一个元素

查找大于阈值的NumPy数组的第一个和最后一个元素

查询ActiveRecord以查找与部分属性匹配的第一个对象

mongodb - 查找匹配查询的第一个子文档

查找在数组中找到的第一个重复元素的索引

查找在 numpy 数组中多次出现的第一个元素

在数组中查找与Swift中的特定条件匹配的第一个元素

查找除第一个元素外的数组尾部

如何查找元素数组的第一个实例

查找和删除Javascript对象数组中的第一个匹配元素

在嵌套数组中查找匹配条件的第一个元素

使用 Google Sheets Filter 查找第一个非连续数组元素

使用 Web 表单查找不连续的数组的第一个元素

使用异步函数查找满足条件的数组的第一个元素

在数组的数组中查找第一个元素,第二个元素的值最高

在Microsoft流分析查询中选择JSON数组中的第一个元素

查询数组仅适用于第一个元素

如何在 SELECT 查询中将数组的第一个元素附加到自身

通过谓词查找第一个元素

查找文本后的第一个元素

在向量中查找第一个缺少的元素

使用jQuery查找并聚焦第一个元素

查找第一个偶数元素并输出索引

查找重复元素的第一个索引

通过传递的MongoDB查询将数组中的第一个对象作为目标

替换数组的第一个 `m` 个元素

查找排序数组中元素的第一个和最后一个位置

从数组返回第一个元素作为Ember控制器子类的计算属性