【发布时间】:2021-01-24 10:35:59
【问题描述】:
我正在尝试检索嵌套对象中属性值之一以“-”开头的所有文档。下面是示例文档 - 我想搜索“counts”数组对象并查找嵌套对象中的任何“value”属性是否以“-”开头
{
"_id": "XYZ",
"departureDate": "2020-10-09",
"travelerCounts": [
{
"counts": [
{
"key": "J",
"value": "4"
},
{
"key": "Y",
"value": "4"
}
],
"travelCountType": "ActualCapacity"
},
...
]
},
{
"_id": "XYZ1",
"departureDate": "2020-10-09",
"travelerCounts": [
{
"counts": [
{
"key": "J",
"value": "18"
},
{
"key": "Y",
"value": "-1"
}
],
"travelCountType": "ActualCapacity"
}
...
]
}
我试过了,但没有运气 -
db.myCollection.find(
{departureDate: "2020-10-09"},
{
"travelerCounts": {
"$elemMatch": {
"travelCountType": "ActualCapacity",
"counts": {
"$elemMatch": {
"value": { $regex : /^-/ }
}
}
}
}
})
请帮忙
【问题讨论】:
-
您最好将值存储为 number 并与
$lt: 0进行比较 -
是的,我同意,但这是在生产中,我们无法更改数据类型
标签: mongodb mongodb-query mongo-shell