Możesz to zrobić za pomocą struktury agregacji 2.2. Coś takiego;
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",
},
},
],
})
Lub może to być jeszcze bliższe temu, czego szukasz, jeśli naprawdę chcesz mieć tablicę bez dokumentacji;
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" },
},
},
],
})