2017-04-18 1 views
1

일치하는 crieteria와 함께 mongodb에서 objectId 만 가져오고 싶습니다. dbobject 및 커서 메소드로 얻을 수 있습니다. 그러나 여기 mongo 클라이언트를 사용했는데 어떻게 될지 전혀 모릅니다. 그것을하기 위해. 당신에게 결과로 Document을 반환하고 _id지도Java를 사용하여 mongodb에서 문서의 objectId 만 얻는 방법

MongoClient client = new MongoClient("localhost", 27017); 
    MongoDatabase database = client.getDatabase("baazaronline"); 
    MongoCollection<Document> collection = database 
      .getCollection("Attribute"); 

    Bson filter = new Document("attcode", attcode); 

    Bson newValue = new Document("DefautV", DefautV).append("IVSO", IVSO).append("UniqueV", UniqueV).append("ValuesR", ValuesR).append("Visiblename", Visiblename).append("citso", citso).append("values",values); 
    Bson updateOperationDocument = new Document("$set", newValue); 
    collection.updateOne(filter, updateOperationDocument); 

    client.close(); 

답변

1

사용 findOneAndUpdate 하라구요.

뭔가 업데이트

ObjectId id = collection.findOneAndUpdate(filter, updateOperationDocument).get("_id", ObjectId.class); 

같은 : 만 _ID 포함 필드에 대한 응답을 제한하는 Projection를 포함합니다.

FindOneAndUpdateOptions findOneAndUpdateOptions = new FindOneAndUpdateOptions(); 
findOneAndUpdateOptions.projection(Projections.include("_id")); 
ObjectId id = collection.findOneAndUpdate(filter, updateOperationDocument, findOneAndUpdateOptions).getObjectId("_id"); 
+0

감사합니다. 귀하의 답변은 매우 유용합니다.하지만이 문서에서만 ID를 얻고 싶습니다. ID를 사용하여 문서를 업데이트하고 싶지 않습니다. –

+0

당신은 오신 것을 환영합니다. 너는 그렇지 않다. 너 그렇게 말하는거야? – Veeram

관련 문제