可以通过以下步骤实现:
db.collection.aggregate([
{
$match: {
arrayField: targetElement
}
}
])
db.collection.aggregate([
{
$match: {
arrayField: targetElement
}
},
{
$project: {
arrayField: {
$map: {
input: { $range: [0, { $size: "$arrayField" }] },
as: "index",
in: {
index: "$$index",
element: { $arrayElemAt: ["$arrayField", "$$index"] }
}
}
}
}
}
])
db.collection.aggregate([
{
$match: {
arrayField: targetElement
}
},
{
$project: {
arrayField: {
$map: {
input: { $range: [0, { $size: "$arrayField" }] },
as: "index",
in: {
index: "$$index",
element: { $arrayElemAt: ["$arrayField", "$$index"] }
}
}
}
}
},
{
$unwind: "$arrayField"
}
])
db.collection.aggregate([
{
$match: {
arrayField: targetElement
}
},
{
$project: {
arrayField: {
$map: {
input: { $range: [0, { $size: "$arrayField" }] },
as: "index",
in: {
index: "$$index",
element: { $arrayElemAt: ["$arrayField", "$$index"] }
}
}
}
}
},
{
$unwind: "$arrayField"
},
{
$sort: {
"arrayField.index": -1
}
}
])
db.collection.aggregate([
{
$match: {
arrayField: targetElement
}
},
{
$project: {
arrayField: {
$map: {
input: { $range: [0, { $size: "$arrayField" }] },
as: "index",
in: {
index: "$$index",
element: { $arrayElemAt: ["$arrayField", "$$index"] }
}
}
}
}
},
{
$unwind: "$arrayField"
},
{
$sort: {
"arrayField.index": -1
}
},
{
$limit: 1
}
])
通过以上步骤,我们可以获取到MongoDB中数组的最后一个匹配元素的索引。请注意,以上查询仅为示例,实际使用时需要根据具体的集合和字段名称进行调整。
领取专属 10元无门槛券
手把手带您无忧上云