MongoDB文档(投影与查询)

问题描述 投票:4回答:1

昨天正在检查MongoDB文档并注意到他们的许多操作符有两个条目,一个在projection下,一个在query下。

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

mongodb
1个回答
5
投票

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

另一种说法是在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匹配sessions文档的user字段中的元素,同时使用相同的运算符投影找到的session

当然,实际上你不会这样写这个查询,因为你可以为投影部分做sessions.$,但我用这种方式写出来以更完整的方式向你展示。

© www.soinside.com 2019 - 2024. All rights reserved.