昨天检查了 MongoDB 文档,发现他们的很多操作员都有两个条目,一个 under projection和一个 under query。
两者有什么区别?他们似乎几乎涵盖了同样的事情。
昨天检查了 MongoDB 文档,发现他们的很多操作员都有两个条目,一个 under projection和一个 under query。
两者有什么区别?他们似乎几乎涵盖了同样的事情。
查询实际上是查询记录,而投影是文档字段的投影。
另一种说法是,投影是SELECT
在 SQL 中,而查询是WHERE
.
让我们看一个例子(http://docs.mongodb.org/manual/reference/operator/elemMatch/):
db.users.find(
{ sessions: {$elemMatch:{session_id: 23}} },
{ sessions:{$elemMatch:{session_id: 23}} }
)
此查询使用 $elemMatch 来匹配文档sessions
字段中的元素,user
同时使用相同的运算符来投影该 found session
。
当然实际上你不会这样写这个查询,因为你可以只sessions.$
为投影部分做,但我这样写是为了以更完整的方式向你展示。