我的样本文档是
[
{
"id": 1234,
"close": "11100",
"products": [
{
"productId": 111
}
]
},
{
"id": 1235,
"close": "10101",
"products": [
{
"productId": 111
}
]
}
]
我只想在“关闭”字段第二个字符为0时获取文档
注意:字符索引是动态的
预期输出:
{
"id": 1235,
"close": "10101",
"products": [
{
"productId": 111
}
]
}
有没有办法在匹配阶段过滤文档?
这是一个示例文档mongoplayground
我在 $project 阶段尝试了这种聚合,但我想在 $match 阶段过滤它。谢谢
close: {
$not: {
$regex: {
$substr: ["$close", 2, 1],
regex: "[1]",
},
},
}
一个选项是:
db.collection.aggregate([
{
$match: {
$expr: {
$eq: [
{
"$substr": [
"$close",
1,
1
]
},
"0"
]
}
}
}
])