我知道这是一个新问题,但我很难弄清楚如何编写查询来查找某些信息。我有几个文件(或订单)很像下面的文件,我试图看看是否有任何运动员在我的查询中放置了我的名字。
如何编写查询以查找athleteLastName = Doe的所有记录(不区分大小写)?
{
"_id" : ObjectId("57c9c885950f57b535892433"),
"userId" : "57c9c74a0b61b62f7e071e42",
"orderId" : "1000DX",
"updateAt" : ISODate("2016-09-02T18:44:21.656Z"),
"createAt" : ISODate("2016-09-02T18:44:21.656Z"),
"paymentsPlan" :
[
{
"_id" : ObjectId("57c9c885950f57b535892432"),
"customInfo" :
{
"formData" :
{
"athleteLastName" : "Doe",
"athleteFirstName" : "John",
"selectAttribute" : ""
}
}
}
]
}
答案 0 :(得分:1)
您需要使用点表示法来访问embedded documents和regex,因为您需要不区分大小写。
db.collection.find({'paymentsPlan.customInfo.formData.athleteLastName': /Doe/i}