采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
$elemMatch作用为匹配数组字段中至少存在一个值满足筛选条件的文档,那那为什么
db.test.find( { contact:{$elemMatch:{ $gt: "500000", $eq:"US"}} } ) 可以匹配到 { “_id” : ObjectId(“5d1af2abd581a14d58484df2”), “name” : “liudi”, “age” : “25”, “contact” : [ “456789”, “Alabama”, “US” ] }
db.test.find( { contact:{$elemMatch:{ $gt: "500000", $eq:"US"}} } )
同学你好~在你的查询语句里,你是把"500000"作为一个字符串在进行比较的。由于文档中的"contact"字段包含一个元素"US",既等于查询字符串"US",又大于查询字符串"500000"(字符串之间比较各个字符的ascii值),这篇文档自然就被返回了~
非常感谢!
elemMatch 里面是不是or的关系 还是and的关系
是and的关系
登录后可查看更多问答,登录/注册
30%理论+70%实战,用实操检验真理,一门让你事半功倍的入门进阶课
2.1k 9
3.5k 4
1.8k 6
1.4k 9
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号