Можете да направите това с рамката за агрегиране 2.2. Нещо подобно;
db.books.runCommand("aggregate", {
pipeline: [
{ // find docs that contain Par*
$match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
},
{ // create a doc with a single array elemm for each indexToken entry
$unwind: "$indexTokens"
},
{ // now produce a list of index tokens
$group: {
_id: "$indexTokens",
},
},
],
})
Или това може да е още по-близо до това, което търсите, ако наистина искате масива без документа;
db.books.runCommand("aggregate", {
pipeline: [
{ // find docs that contain Par*
$match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
},
{ // create a doc with a single array elemm for each indexToken entry
$unwind: "$indexTokens"
},
{ // now throw out any unwind's that DON'T contain Par*
$match: { "indexTokens": { "$regex": "^Par", "$options": "i" } },
},
{ // now produce the list of index tokens
$group: {
_id: null,
indexTokens: { $push: "$indexTokens" },
},
},
],
})