arrays - MongoDB - 查询数组的最后一个元素?

标签 arrays mongodb mongoose mongodb-query spring-data-mongodb

我知道 MongoDB 支持语法 find{array.0.field:"value"},但我特别想对数组中的最后一个元素执行此操作,这意味着我不知道索引。有某种运算符(operator)可以做到这一点,还是我运气不好?

编辑:为了澄清,我希望 find() 仅返回数组最后一个元素中的字段与特定值匹配的文档。

最佳答案

在 3.2 中这是可能的。第一个项目使 myField 只包含最后一个元素,然后在 myField 上进行匹配。

db.collection.aggregate([
   { $project: { id: 1, myField: { $slice: [ "$myField", -1 ] } } },
   { $match: { myField: "myValue" } }
]);

关于arrays - MongoDB - 查询数组的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205546/

相关文章:

node.js - Async/Await 不按顺序执行

c true循环语句在hangman中不断实现

Java:二维数组的For循环打印语句

mongodb - mongo 聚合结果超出最大文档大小

sql-server - 我应该使用 SQL Server 触发器来迁移数据库吗?

node.js - 如何查询 mongoose 以便搜索必须匹配两个 id

c++ - 在 C++ 中对二维数组进行快速简单的矩阵运算

c++ - 指针类型引用

带有 FastAPI 的 MongoDb

node.js - Mongoose 多个 $push 到多个数组