基于mongoDB中的数组元素值获取记录

基于mongoDB中的数组元素值获取记录,mongodb,Mongodb,我有一个名为test的集合,如下所示 {“_id”:ObjectId(“ciwhciwiwh686ddd”) “playerName”:“Jon Doe” “玩家团队”:“团队1” “要点”:[ {“日期”:“2018年1月1日”,“分数”:145}, {“日期”:“2019年1月1日”,“分数”:200} ] 通过mongoDB官方文件,尝试了以下方法 db.test.find({"Player Team": "Team1"}, {"points": {"date":"01-01-2018"}

我有一个名为test的集合,如下所示 {“_id”:ObjectId(“ciwhciwiwh686ddd”) “playerName”:“Jon Doe” “玩家团队”:“团队1” “要点”:[ {“日期”:“2018年1月1日”,“分数”:145}, {“日期”:“2019年1月1日”,“分数”:200} ]

通过mongoDB官方文件,尝试了以下方法

db.test.find({"Player Team": "Team1"}, {"points": {"date":"01-01-2018"}})
我也试过了

db.test.find({"Player Team": "Team1"}, {"points.date":"01-01-2018"})

我得到了不受支持的投影选项:

$elemMatch运算符将包含数组字段的文档与至少一个匹配所有指定查询条件的元素相匹配


db.test.find({“玩家团队”:“Team1”},{“points”:{$elemMatch{“date”:“01-01-2018”}}}})

我想我找到了答案。需要使用$elemmatchy你得到了“不受支持的投影选项”错误,因为你的查询是错误的。请尝试-----db.test find({“玩家团队”:“Team1”,“points”:{“date 01-01-2018”})或----db.test find({“玩家团队”:“Team1”,“积分日期”:“2018年1月1日”})
db.test.find({"Player Team": "Team1"}, {"points.date":"01-01-2018"})