MongoDB 文档(投影与查询)

标签 mongodb

昨天检查了 MongoDB 文档,发现他们的很多运算符(operator)都有两个条目,一个在 projection 下和一个在query下.

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

最佳答案

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.$ 但我这样写是为了以更完整的方式向你展示.

关于MongoDB 文档(投影与查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449830/

相关文章:

mongodb - "fire and forget"在 MongoDB 中写入的确切含义是什么

mongodb - Chef: mongodb::user_management 失败,错误代码 "NameError: uninitialized constant Mongo::MongoClient"

solaris10 64 位上的 Mongodb - 我在尝试运行 ./mongod 时得到 'Invalid argument'

node.js - Cassandra 或 mongodb 或其他大型在线销售网站

如果一个字段不存在,Mongodb 添加多个文档

node.js - Mongoose {严格: throw} doesn't throw error

ruby - 使用 mongomapper 保存日期/时间

python - 在 Mongoengine 中使用键作为值

sql-server - 是否将所有内容存储在 MongoDB 中?并用 SQL 吗? (最终一致性)

mongodb - 何时在 mongodb cxx r3.0.2 驱动程序中使用 finalize