昨天检查了 MongoDB 文档,发现他们的很多运算符(operator)都有两个条目,一个在 projection 下和一个在query下.
两者有什么区别?它们似乎涵盖了几乎相同的内容。
最佳答案
Query实际上是查询记录,而projection是文档字段的投影。
另一种表达方式是说投影是 SQL 中的 SELECT
,查询是 WHERE
。
让我们看一个例子(http://docs.mongodb.org/manual/reference/operator/elemMatch/):
db.users.find(
{ sessions: {$elemMatch:{session_id: 23}} },
{ sessions:{$elemMatch:{session_id: 23}} }
)
此查询使用 $elemMatch 来匹配 user
文档的 sessions
字段中的元素,同时使用完全相同的运算符投影找到的 session
.
当然在现实中你不会这样写这个查询,因为你可以只为投影部分做 sessions.$
但我这样写是为了以更完整的方式向你展示.
关于MongoDB 文档(投影与查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449830/