如何匹配数组中的元素? MongoDB聚合
How to match an element in array? MongoDB aggregation
我需要检查数组中包含特定字段的所有文档。
例如我有数组
arr = ['a', 'b', 'a']
我想匹配字段 my_letter
等于 a or b
的所有文档。
我有文件:
[
{
_id: ObjectID(),
my_letter:'d'
},
{
_id: ObjectID(),
my_letter:'a'
},
{
_id: ObjectID(),
my_letter:'b'
}
]
我希望聚合到 return
[
{
_id: ObjectID(),
my_letter:'a'
},
{
_id: ObjectID(),
my_letter:'b'
}
]
我在我的 $match
管道中试过这个
{
$match: {
_id: {
$elemMatch: {
$or: [
{ $eq: ["a"] },
{ $eq: ["b"] },
],
},
},
},
},
当然不行。您建议如何完成 $match 管道?
db.collection.find({
my_letter: {
$in: [ "a", "b" ]
}
})
db.collection.aggregate([
{
$match: {
my_letter: {
$in: [ "a", "b" ]
}
}
}
])
我需要检查数组中包含特定字段的所有文档。
例如我有数组
arr = ['a', 'b', 'a']
我想匹配字段 my_letter
等于 a or b
的所有文档。
我有文件:
[
{
_id: ObjectID(),
my_letter:'d'
},
{
_id: ObjectID(),
my_letter:'a'
},
{
_id: ObjectID(),
my_letter:'b'
}
]
我希望聚合到 return
[
{
_id: ObjectID(),
my_letter:'a'
},
{
_id: ObjectID(),
my_letter:'b'
}
]
我在我的 $match
管道中试过这个
{
$match: {
_id: {
$elemMatch: {
$or: [
{ $eq: ["a"] },
{ $eq: ["b"] },
],
},
},
},
},
当然不行。您建议如何完成 $match 管道?
db.collection.find({
my_letter: {
$in: [ "a", "b" ]
}
})
db.collection.aggregate([
{
$match: {
my_letter: {
$in: [ "a", "b" ]
}
}
}
])