2016-07-21 3 views
0

2 개의 콜렉션이 있습니다. 하나는 foreignObjectId가 다른 하나를 참조합니다. 2 개 모음에서 $ 조회를 수행하려고합니다. 것은 외국 ObjectId가는 아래 형식의 문서로 저장된다

"testId" : { "timestamp" : 1469105907, "machineIdentifier" : 8036392, "processIdentifier" : 7899, "counter" : 12372063, "timeSecond" : 1469105907, "time" : NumberLong("1469105907000"), "date" : NumberLong("1469105907000") }

ObjectId가 위 다스 려하는 동안이 형식으로되어 있습니다 :

ObjectId("5790c6437aa0281e0f534729") 

내가 저장 어떻게 하나는 참조하는 것처럼 형식으로 외국 ObjecId?

java 드라이버와 mongo 3.2.0을 사용합니다 !!! 다음과 같이 문서를 저장하십시오.

Test at = new Test(); 
     at.setForeignId(new ObjectId("5790c6437aa0281e0f534729")); 
+0

왜 외국 형식의 testId를 참조하는 데 이러한 형식을 사용합니까? ObjectId로 저장할 수 있습니까? testId 문서는 ObjectId를 구성하는 정보와 유사합니다 (https://docs.mongodb.com/manual/reference/method/ObjectId/ 문서 참조). –

답변

0

죄송합니다. 문서 삽입에 문제가 있습니다. 이런 식으로 ObjectId를 렌더링하는 mapper 객체를 사용하고있었습니다. !!! 아래의 방법으로 문서를 작성하여

org.codehaus.jackson.map.ObjectMapper mapper = new ObjectMapper(); 
     String jsonString = mapper.writeValueAsString(POJO_OBJECT); 
     Document doc = Document.parse(jsonString); 

내가 전체 삽입 과정을 재구성했다 : 이를 사용하지 않는

Document doc = new Document(); 
    doc.append("_id", POJO_OBJECT.theObjectId); 
    doc.append("foreign", POJO_OBJECT.theForeignId); 
    doc.append("objectOne", POJO_OBJECT.objectOne); 
    doc.append("objectTwo", POJO_OBJECT.objectTwo); 
    ... 

다음 삽입이 문서를 사용 !!!! 그 사람 somebody을 구할 희망 두통

관련 문제