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



我有两个集合

  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游标值12.0

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

您想要使用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() );
    }

相关内容

  • 没有找到相关文章

最新更新