【发布时间】:2011-11-24 00:56:32
【问题描述】:
似乎几乎没有关于如何为 MongoDB 设计数据库的文档。所以我想我先在这里发布我的问题。
假设这个集合(fruits_inventory)作为例子:
{
"name" : "Orange",
"type" : "citric",
"available" : 3
}
{
"name" : "Apple",
"type" : "pome",
"available" : 0
"note" : "Not shipping this month"
}
{
"name" : "Pear",
"type" : "pome",
"available" : 2
}
(No indexes set)
1) 字段选择
db.fruits_inventory.findOne({name:"Orange"},{"note":1});
此查询是否会查找仅包含字段 name 且值为 Orange 的文档并在第一次命中时返回,即使它没有设置 note 字段?还是会继续搜索包含note 字段的文档?
2) 具有唯一索引
如果我在name 上设置唯一索引,上一个问题的答案会改变吗?
暂时只有这两个问题。答案将不胜感激。
【问题讨论】:
-
当你尝试时会发生什么?
-
我真的不能,因为无论哪种情况,查询都会返回 NULL。我还能如何测试它?
-
没有关于如何设计的文档:不是真的。但在这里也完全无关紧要。您需要有关查询的文档,并且有据可查。顺便说一句..这些查询没有结果..这能告诉你什么吗?你还能测试什么?
-
> 我真的不能,因为无论哪种情况,查询都会返回 NULL - 你真的应该尝试一下......
-
@BernieHackett:当然我试过了,我使用了 PHP 驱动程序,但我一直得到 NULL,这是有道理的,因为在这两种情况下都找不到我请求的字段。