java 点符号_点符号与$ elemMatch

我有一个unitScores集合,其中每个文档都有一个id和一组文档,如下所示:

"_id": ObjectId("52134edd5b1c2bb503000001"),

"scores": [

{

"userId": ObjectId("5212bf3869bf351223000002"),

"unitId": ObjectId("521160695483658217000001"),

"score": 33

},

{

"unitId": ObjectId("521160695483658217000001"),

"userId": ObjectId("5200f6e4006292d308000008"),

"score": 17

}

]

我有两个查找查询:

_id:new ObjectID(scoreId)

"scores.userId":new ObjectID(userId)

"scores.unitId":new ObjectID(unitId)

_id:new ObjectID(scoreId)

scores:

$elemMatch:

userId:new ObjectID(userId)

unitId:new ObjectID(unitId)

我希望他们给出相同的结果,但使用输入userId和unitId

userId: 5212bf3869bf351223000002

unitId: 521160695483658217000001

点符号版本返回错误的数组条目(得分为17的那个),$ elemMatch返回正确的条目(得分为33的条目) . 这是为什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值