Javascript MongoDB比较特定索引处的两个数组值
我有一个MongoDB文档集,格式为Javascript MongoDB比较特定索引处的两个数组值,javascript,mongodb,mongodb-query,Javascript,Mongodb,Mongodb Query,我有一个MongoDB文档集,格式为 { "_id": { "$oid": "5f8a61df2f74ae5aed652d2e" }, "symbol": "AAPL", "adx": [], "sma": [], "time": [], "minusdmi
{
"_id": {
"$oid": "5f8a61df2f74ae5aed652d2e"
},
"symbol": "AAPL",
"adx": [],
"sma": [],
"time": [],
"minusdmi": [],
"plusdmi": []
}
如何返回“plusdmi”数组的最后一个元素大于“minusdmi”数组的最后一个元素的文档
我试过了
{$expr:{$gt: ["plusdmi.14", "minusdmi.14"]}}
但这似乎会返回所有文档。您可以使用聚合框架来实现您的用例 使用运算符返回指定数组索引处的元素。 最后一个元素可以使用-1作为数组索引进行访问
db.collection.aggregate([
{
$match: {
$expr: {
$gt: [
{
$arrayElemAt: [
"$plusdmi",
-1
]
},
{
$arrayElemAt: [
"$minusdmi",
-1
]
}
]
}
}
}
])