MongoDB文档(投影与查询)
问题描述:
昨天正在检查MongoDB文档,并注意到他们的许多操作员有两个条目,一个在projection下,另一个在query下。MongoDB文档(投影与查询)
两者有什么区别?他们似乎几乎涵盖了同样的事情。
答
查询实际上是查询记录,而投影是文档字段的投影。
另一种说法是在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而使用同样的运营商的该投影发现session
中的一个元素一个user
文件的sessions
场相匹配。
当然实际上你不会写这样的查询,因为你可以为投影部分做sessions.$
,但是我用这种方式写出来以更完整的方式展示给你。
啊,所以当你限制你从Mongo取回的字段时,你可以使用$ gt,$ elemMatch等来获得更复杂的逻辑。即将说SQL示例没有帮助,那么它终于明白了你在说什么。谢谢您的帮助! –