Mongodb java - 如何查询特定的引用id值

时间:2012-09-04 12:58:34

标签: mongodb mongodb-java dbref

我有两个收藏品

  checkone
    {"_id":1,"name":"alex"},
    {"_id":2,"name":"sandy"}
  checktwo
    {"_id":11,"password":"alex",tenant_id:{$ref:"checkone","$id":1}}
    {"_id":12,"password":"alex",tenant_id:{$ref:"checkone","$id":2}}

我正在查询特定的字段tenant_id值。

    DB database = mongo.getDB("testcheck");
    DBCollection tenant = database.getCollection("checktwo");
    BasicDBObject query = new BasicDBObject();
    BasicDBObject field = new BasicDBObject();
    field.put("tenant_id.$id", 1);
            DBCursor cursor = tenant.find(query,field);
                while (cursor.hasNext()) {
        System.out.println("cursor value");
        System.out.println(cursor.next().get("tenant_id.$id"));
    }

输出:

游标值 空值 光标值 空

但是当我查询System.out.println(cursor.next()。get(“_ id”));

输出: 光标值 11.0 光标值 12.0

如何单独查询tenant_id值?输出必须是游标值1,游标值2

1 个答案:

答案 0 :(得分:1)

您想使用DBRef课程。这是对原始while()循环的重写。

    BasicDBObject query = new BasicDBObject();
    BasicDBObject field = new BasicDBObject();
    DBCursor cursor = tenant.find( query, field );

    while( cursor.hasNext() ) {
        System.out.println( "cursor value" );
        DBRef ref = ( DBRef )cursor.next().get( "tenant_id" );
        System.out.println( ref.getId() );
    }