4

昨天检查了 MongoDB 文档,发现他们的很多操作员都有两个条目,一个 under projection和一个 under query

两者有什么区别?他们似乎几乎涵盖了同样的事情。

4

1 回答 1

5

查询实际上是查询记录,而投影是文档字段的投影。

另一种说法是,投影是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.$为投影部分做,但我这样写是为了以更完整的方式向你展示。

于 2013-07-03T14:01:01.010 回答