mongodb投影查询中first {}花括号的含义是什么?

时间:2015-03-31 06:14:44

标签: mongodb

我想知道在此查询中找到后第一个大括号{}的需要是什么。

db.mycol.find({},{"title":1,_id:0})

4 个答案:

答案 0 :(得分:4)

在限制边界的意义上,这是一个空查询。所以

db.mycol.find({},{"title":1,_id:0})

基本上会转换为

  

显示当前数据库中mycol集合的所有文档的标题,但不是_id(就像默认情况下那样)。

假设您想要由Alan Turing编写的所有标题。所以你可以像这样修改查询部分:

db.mycol.find({"author":"Alan Turing"},{"title":1,_id:0})

通常,MongoDB的查找操作可以像这样描述

db.collection.find(query,projection)

有关详细信息,您可能需要阅读find's documentation

答案 1 :(得分:1)

第一个Curly大括号在 MySql

中用作where条件

查看此链接 - SQL to MongoDB Mapping Chart

<强>的MySQL

SELECT user_id, status FROM users WHERE status = "A"

<强> MongoDB的

db.users.find(
    { status: "A" },
    { user_id: 1, status: 1, _id: 0 }
)

答案 2 :(得分:0)

这称为projection并告知要显示的字段。例如,您只显示title。它类似Select title from mycol;如果您不指定投影,它将返回所有内容,接近select * from mycol;

始终显示

_id,除非您使用_id: 0明确隐藏它。另一件事是你不能混合0和1(_id除外)。但又一次 - read FAQ

答案 3 :(得分:0)

您应该参考此链接以获得更好的解释     http://docs.mongodb.org/manual/reference/operator/projection/positional/

首先,投影不会返回它发现的第一个结果,它告诉mongo返回什么。

.findOne(查询)将LIMIT结果置于一个或查找(查询).limit(1)也将执行相同的操作。

你说你正试图全力以赴。你的数据。

标准查找类型查询将启动您的...

find({mongo:query},{mongo:projection})

但将结果限制为来自mongo shell *

的游标