请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

$elemMatch使用问题

$elemMatch作用为匹配数组字段中至少存在一个值满足筛选条件的文档,那那为什么

db.test.find( { contact:{$elemMatch:{ $gt: "500000", $eq:"US"}} } )
可以匹配到
{ “_id” : ObjectId(“5d1af2abd581a14d58484df2”), “name” : “liudi”, “age” : “25”, “contact” : [ “456789”, “Alabama”, “US” ] }

正在回答

2回答

同学你好~在你的查询语句里,你是把"500000"作为一个字符串在进行比较的。由于文档中的"contact"字段包含一个元素"US",既等于查询字符串"US",又大于查询字符串"500000"(字符串之间比较各个字符的ascii值),这篇文档自然就被返回了~

0 回复 有任何疑惑可以回复我~
  • 提问者 飘零的狐狸 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-07-08 13:12:31
提问者 飘零的狐狸 2019-07-02 14:44:06

elemMatch 里面是不是or的关系 还是and的关系

0 回复 有任何疑惑可以回复我~
  • Stannum #1
    是and的关系
    回复 有任何疑惑可以回复我~ 2019-07-06 00:27:07
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号