$elemMatch使用问题
来源:3-7 【读取文档】动手实战 - 数组操作符,运算操作符和文档游标

飘零的狐狸
2019-07-02
$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值),这篇文档自然就被返回了~
012019-07-08 -
飘零的狐狸
提问者
2019-07-02
elemMatch 里面是不是or的关系 还是and的关系
012019-07-06
相似问题