这里的数组用$gt比较操作符是怎么运算的?

来源:3-9 【读取文档】动手实战 - 化繁为简的文档投影

champ

2019-05-19

之前的比较操作符都是比较的字符串或者数字,比如

db.accounts.find({ name: { $gt: "karen" } })

这里突然用数组和字符串进行比较,

db.accounts.find({ contact: { $gt: "Alabama" } })

请问,数组contact是怎么和字符串Alabama比较的?

写回答

1回答

Stannum

2019-05-20

同学你好~这里我们不是单独使用这个筛选条件的,而是在投影中和$操作符搭配使用的,完整的语句是:

db.accounts.find( { contact: { $gt: "Alabama" }, { "contact.$": 1} )

这里的$是一个特殊的数组占位操作符,它的意思是筛选出数组中符合筛选条件的第一个元素。这是一个相对来说比较特殊的操作符,不可以把它和之前的筛选条件语句拆开使用。

其实使用$操作符的机会可能不多,平时更常用的还是通过$elemMatch操作符来筛选数组元素

0
5
洛奇2019
回复
Stannum
在mongodb里,居然能把数组和字符串直接比较,我试了一下可以,真神奇!
2020-10-02
共5条回复

玩转MongoDB4.0(最新版) 从入门到实践

30%理论+70%实战,用实操检验真理,一门让你事半功倍的入门进阶课

1138 学习 · 197 问题

查看课程