我使用 MongoDB v 4.2.17,其中有一組檔案,例如:
[
{
a: 'a',
b: 'b',
c: ['apples', 'grapes']
},
{
a: 'a',
b: 'b',
c: ['elephants', 'apes']
}
]
我需要撰寫一個查詢來回傳所有檔案,其中陣列的任何元素都c與提供的正則運算式相匹配。
我有一個匹配陣列中第一個元素的解決方案:
db.collection.aggregate([{$match: {'c.0': {$regex: 'apes'} }}])
此查詢成功匹配陣列中第一個元素與正則運算式匹配的檔案。
我需要撰寫一個聚合來獲取陣列中任何元素與正則運算式匹配的檔案。
我試過這個(沒用)
db.collection.aggregate([{$match: {'c.$': {$regex: 'apes'} }}])
我需要使用 aregex和一個聚合,所以簡單的find不起作用。提前致謝。
uj5u.com熱心網友回復:
只需使用該值c,而不是c.0nor c.$。
db.collection.aggregate([
{
$match: {
"c": {
$regex: "apes"
}
}
}
])
檢查這個例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/384749.html
上一篇:MongoDB按多個欄位分組
下一篇:從聚合管道中的陣列中提取唯一值
