这里的数组用$gt比较操作符是怎么运算的?
来源:3-9 【读取文档】动手实战 - 化繁为简的文档投影

champ
2019-05-19
之前的比较操作符都是比较的字符串或者数字,比如
db.accounts.find({ name: { $gt: "karen" } })
这里突然用数组和字符串进行比较,
db.accounts.find({ contact: { $gt: "Alabama" } })
请问,数组contact
是怎么和字符串Alabama
比较的?
写回答
1回答
-
同学你好~这里我们不是单独使用这个筛选条件的,而是在投影中和$操作符搭配使用的,完整的语句是:
db.accounts.find( { contact: { $gt: "Alabama" }, { "contact.$": 1} )
这里的$是一个特殊的数组占位操作符,它的意思是筛选出数组中符合筛选条件的第一个元素。这是一个相对来说比较特殊的操作符,不可以把它和之前的筛选条件语句拆开使用。
其实使用$操作符的机会可能不多,平时更常用的还是通过$elemMatch操作符来筛选数组元素
052020-10-02
相似问题