我有一組標簽和一組具有這些標簽陣列的物件。我正在嘗試獲取標簽串列以及使用它們的專案串列。
標簽:
{
...
"tag":"test"
...
}
目的:
{
...
"tags": ["test", "test_1"]
...
}
預期結果:
{
...
"tag": "test",
"objects": [
{
...
"tags": ["test", "test_1"]
...
}
]
...
}
我正在嘗試執行以下查找。
{
from: 'object',
let: {
tag: "$tag"
},
pipeline: [
{ $match: {
$expr: {
$eq: ["$tags", "$$tag"]
}
}
}
],
as: 'objects'
}
但他沒有把他們聯合起來。如果tags不是一個陣列,而是一個字串,那么上面的查找作業正常,但我需要它是一個陣列。如果我$eq用$in它替換會抱怨預期的第二個引數是一個字串,但它需要一個陣列。交換引數 ( $in: ["$$tag", "$tags"]) 也不起作用。我不明白如何正確地做到這一點。
uj5u.com熱心網友回復:
您可以使用$in
db.tag.aggregate([
{
"$lookup": {
from: "object",
let: {
tag: "$tag"
},
pipeline: [
{
$match: {
$expr: {
$in: [
"$$tag",
"$tags"
]
}
}
}
],
as: "objects"
}
}
])
作業Mongo游樂場
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494686.html
標籤:mongodb
