gpt4 book ai didi

node.js - 获取数组中元素的索引

转载 作者:可可西里 更新时间:2023-11-01 09:54:49 28 4
gpt4 key购买 nike

遵守以下模式:

Client {
name: String
}

Votes {
start: Date,
end: Date,
clients: [
client: Client,
votes: Number
]
}

是否可以在不返回整个数组的情况下获取“votes.clients”中某个“Client”的索引?

我的用例如下。 'clients' 数组按投票数排序。数组中可能有数十万个元素。我需要在一定时期内根据某些客户的票数快速获得职位。例如:'昨天客户 John 按票数排名第 205 位。

最佳答案

当您在某个时候对客户数组进行排序时,您可以将索引值保留在子文档中。

 clients: [
{
client: {type: mongoose.Schema.Types.ObjectId, ref: 'Client'},
votes: {type: Number},
index: {type: Number}
}
]

并使用 $filter在聚合框架中将只返回那些匹配过滤条件的子文档,它们将包含索引。

Vote.aggregate( [{ $match: {end: "2016-10-14T19:39:52.476Z"}},
{
$project: {
clients: {
$filter: {
input: '$clients',
as: 'client',
cond: {$gt: ['$$client.votes', 50]}
}
}
}
}
])

关于node.js - 获取数组中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37005519/

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