运营商也被认为是钥匙吗?

Mar*_*nst 3 mongodb json operator

我正在学习 MongoDB 课程,其中一项作业要求在键周围包含引号。

所以我做了这样的查询 {$push: {"key":value}}

但有人告诉我 $push 也是一个键,因为它在左侧。我一直认为键就像值的标识符,而运算符只是操作,它们没有任何关联的值。

Eds*_*lho 7

$push ”是 JSON 上下文中的一个键。不要忘记 mongo 中的所有内容(查询、投影、文档、方法参数)都表示为 JSON 对象。所以,虽然$push是 Mongo 的一个操作符,但它仍然是它所属的 JSON 对象上的一个键。

JSON 的规范要求键名用双引号括起来,尽管实际上是 Javascript 解释器的 Mongo shell 更灵活,并且允许键名(字段名和运算符)没有它们,就像语言一样。