使用可能的选项数组查询 MongoDB 集合深处的字段
Query over a field which is deep inside MongoDB collection using array of possible options
我在 MongoDB
中有一个 list
的 commentDocument
集合,其中每个集合都具有以下结构:
{
"commentName": "test comment",
"outputs": {
"extraDetails": [{
"name": "My Own Comment",
"amountPaidDetails": [{
"paidService": "PhonePe", // <--------HERE
"usdAmount": 80,
},{
"paidService": "GooglePay", // <--------HERE
"usdAmount": 50,
},{
"paidService": "Cash", // <--------HERE
"usdAmount": 15,
}]
}]
},
"lastUpdateDate": {
"$date": "2020-06-24T04:00:00.000Z"
},
"lastUpdatedBy": "michealJackson",
}
我必须编写一个 MongoDB 查询,将付费服务名称列表作为输入传递。如果数据库中的文档包含我在 allocatedAmound
列表中发送的列表中的任何付费服务,则该文档应该出现在返回的文档列表中。
例如:我传递列表 ['WalletCash', 'GooglePay', 'BankingCredits']
,上面的文档应该存在,因为它有一个带有 paidService 'GooglePay'
.
的文档
如何写查询?
db.collection.aggregate([
{
$match: {
"outputs.extraDetails.amountPaidDetails.paidService": {
$in: [
"WalletCash",
"GooglePay",
"BankingCredits"
]
}
}
}
])
我在 MongoDB
中有一个 list
的 commentDocument
集合,其中每个集合都具有以下结构:
{
"commentName": "test comment",
"outputs": {
"extraDetails": [{
"name": "My Own Comment",
"amountPaidDetails": [{
"paidService": "PhonePe", // <--------HERE
"usdAmount": 80,
},{
"paidService": "GooglePay", // <--------HERE
"usdAmount": 50,
},{
"paidService": "Cash", // <--------HERE
"usdAmount": 15,
}]
}]
},
"lastUpdateDate": {
"$date": "2020-06-24T04:00:00.000Z"
},
"lastUpdatedBy": "michealJackson",
}
我必须编写一个 MongoDB 查询,将付费服务名称列表作为输入传递。如果数据库中的文档包含我在 allocatedAmound
列表中发送的列表中的任何付费服务,则该文档应该出现在返回的文档列表中。
例如:我传递列表 ['WalletCash', 'GooglePay', 'BankingCredits']
,上面的文档应该存在,因为它有一个带有 paidService 'GooglePay'
.
如何写查询?
db.collection.aggregate([
{
$match: {
"outputs.extraDetails.amountPaidDetails.paidService": {
$in: [
"WalletCash",
"GooglePay",
"BankingCredits"
]
}
}
}
])