【发布时间】:2021-04-16 06:43:43
【问题描述】:
我有这样的文件:
{
"_id": "5ffc130e9fb31b26162e0bad",
"results": [
{
"customer": {
"display_name": "Manno Dispensary - first",
"ext_acct_id": "267"
}
},
{
"customer": {
"display_name": "Manno Dispensary - second",
"ext_acct_id": "262"
}
},
{
"customer": {
"display_name": "Kako Dispensary - first",
"ext_acct_id": "261"
}
},
{
"customer": {
"display_name": "Kako Dispensary - second",
"ext_acct_id": "263"
}
}
]
}
我想编写一个 MongoDB 查询,它在 "customer.display_name" 上进行正则表达式搜索,并在满足此条件的结果中返回所有这些文档。
到目前为止,我已经编写了这个查询,它返回了我想要的输出,但问题是,它只是在结果中重新调整了一个文档,我错过了什么吗?
我想要的输出:
{
"_id": "5ffc130e9fb31b26162e0bad",
"results": [
{
"customer": {
"display_name": "Manno Dispensary - first",
"ext_acct_id": "267"
}
},
{
"customer": {
"display_name": "Manno Dispensary - second",
"ext_acct_id": "262"
}
}
]
}
我实际上得到了什么:
{
"_id": "5ffc130e9fb31b26162e0bad",
"results": [
{
"customer": {
"display_name": "Manno Dispensary - first",
"ext_acct_id": "267"
}
}
]
}
这是我为获取客户名称中包含“Manno”的所有客户而编写的查询。
我的收藏名称是 Order(mongoose), search="Manno"
Order.find({
results: {
$elemMatch : {
"customer.display_name": {$regex: search}
}
}
},{
results: {
$elemMatch : {
"customer.display_name": {$regex: search}
}
}
});
【问题讨论】:
标签: regex mongodb mongoose mongodb-query aggregation-framework