Javascript 如何查询object类型字段中的字段与值匹配的所有文档

Javascript 如何查询object类型字段中的字段与值匹配的所有文档,javascript,mongodb,aggregate,Javascript,Mongodb,Aggregate,我不熟悉使用MongoDB,我遇到了一个问题:在object类型的Tair字段中,选择所有字符串值与一个字段匹配的文档 以下是我的文档结构: { _id:Objected5E418404BFA0C42C913B0646, 日期:ISODate2020-02-10T16:25:40.046Z, 员工:Objected5E3D3019056065194C0D5F08, 新客户:{ 名字:Max, 姓:穆斯特曼, 性别:M }, 状态:完成, 报告日期:ISODate2020-02-10T16:25:

我不熟悉使用MongoDB,我遇到了一个问题:在object类型的Tair字段中,选择所有字符串值与一个字段匹配的文档

以下是我的文档结构:

{ _id:Objected5E418404BFA0C42C913B0646, 日期:ISODate2020-02-10T16:25:40.046Z, 员工:Objected5E3D3019056065194C0D5F08, 新客户:{ 名字:Max, 姓:穆斯特曼, 性别:M }, 状态:完成, 报告日期:ISODate2020-02-10T16:25:40.046Z } 我想选择newClient.firstname与new rexepmax,i匹配的所有文档

因为我需要$lookup来定义其他匹配项,所以我必须使用聚合,它看起来像这样:

db.getCollection'assignments'。聚合[ { $lookup:{ 发件人:客户, localField:client, foreignField:\u id, as:客户 } }, {$unwind:$client}, { $match:{ 状态:完成, $or:[ { //-这是我做过的一些例子,但没有一个是有效的-- //分配:{$elemMatch:{newClient.lastname:{$regex:Android,$options:i} //assignments.newClient:{$elemMatch:{lastname:{$regex:Android,$options:i} //newClient.*:新的RegExpAndroid,i } ] } }, ];
如何执行此操作?

以下是一些有效的正则表达式条件:

db.assignments.aggregate([
   { $match: { $expr: { $regexMatch: { input: "$newClient.firstname", regex: "max", options: "i" } } } }
])

db.collection.aggregate([
   { $match: { $expr: { $regexMatch: { input: "$newClient.firstname", regex: /max/i } } } }
])

db.assignments.aggregate([
   { $match: { "newClient.firstname": /max/i } }
])

db.assignments.aggregate([
   { $match: { "newClient.firstname": { $regex: /max/i } } }
])

db.assignments.aggregate([
   { $match: { "newClient.firstname": { $regex: "max", $options: "i" } } }
])