MongoDB文档(投影与查询)

4

昨天查看了MongoDB文档,发现他们的许多运算符有两个条目,一个在projection下,另一个在query下。

它们之间有什么区别?它们似乎几乎涵盖了相同的内容。

1个回答

5

查询(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.$进行投影,但我以这种更完整的方式向您展示它。


啊哈,所以当你从Mongo限制返回的字段时,你可以使用$gt、$elemMatch等更复杂的逻辑。我本来要说SQL示例没有帮助,然后终于明白你在说什么了。谢谢你的帮助! - AlbertEngelB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接