gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:19:54 33 4
gpt4 key购买 nike

我在 MongoDB 中有以下数据(根据我的问题进行了简化)。

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

我想要为每个文档找到第一个 Action 类型,例如

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

(如果数据结构不同也没关系,但我需要以某种方式存在这些值。)

编辑:我试过 db.collection.find({}, {'actions.action_type':1}),但显然返回 all 元素 Action 数组。

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

最佳答案

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

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

关于MongoDB查询以查找数组第一个元素的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19174895/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com