【发布时间】:2010-10-20 06:29:26
【问题描述】:
这是我当前的查询:使用 Java+mongoDB
{
BasicDBObject select = new BasicDBObject();
select.put("info.name.fn", 1);
DBCursor cursor = collection.find(new BasicDBObject(), select);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
输出如下:
{ "_id" : { "$oid" : "123"} , "info" : { "name" : { "fn" : "foo"}}}
{ "_id" : { "$oid" : "123"} , "info" : { "name" : { "fn" : "bar"}}}
{ "_id" : { "$oid" : "123"} , "info" : { "name" : { "fn" : "baz"}}}
_ids 已更改以适应输出。我的问题是,我要给出什么查询才能得到输出:
foo
bar
baz
有可能吗?还是每个查询总是以上述格式返回它?我不能运行 distinct() 因为有重复的名称。
谢谢。
【问题讨论】:
-
我也试过 cursor.next.get("info.name.fn") 但它返回 null。
-
我认为你必须把它分解成三个得到的链。尽管这是对 Java API 的潜在改进请求。也许在 MongoDB 邮件列表上询问它。不过,有人已经想到了这一点,它可能被丢弃了,因为它在某个地方造成了麻烦。
-
好的,我会把它发布到 mongodb-user GG 上。谢谢。
-
还提到你必须做的所有演员。
-
不确定 Java 和 Mongo 如何协同工作,但您应该查看文档中的“检索字段子集”部分。这允许您限制查询检索的内容。 mongodb.org/display/DOCS/…