2016-04-26 3 views
1

Это первый раз, когда я использовал MongoDB и я добавил документ с Java таким образом:Добавить вспомогательный документ MongoDB с Явой

//document populated with for cycle 
document.append(element.getID().toString(), new Document("EL_ID", feedback.getPos(i).getID()) 
        .append("name", element.getName()) 
        .append("vote", 5) 
       ); 

//and write (replaceOne is correct for my program's logic) 
BasicDBObject searchQuery = new BasicDBObject().append("_id", MainDocID); 
collection.replaceOne(searchQuery, document); 

результатом является:

{ 
"_embedded": {}, 
"_links": { ... }, 
"_type": "DOCUMENT", 
"_id": { ... }, 

"element_ID_1": { 
    "EL_ID": { 
     "$oid": "element_ID_1" 
    }, 
    "name": "one", 
    "vote": 5 
}, 
"element_ID_2": { 
    "EL_ID": { 
     "$oid": "element_ID_2" 
    }, 
    "name": "two", 
    "vote": 5 
}, 
"_created_on": "date" 
} 

Я думаю, что это правильно поместить эти элементы в «_embedded», и это также более упорядочено, но я не знаю, как это сделать.

Я хочу, чтобы достичь этого результата:

{ 
    "_embedded": { 

     "element_ID_1": { 
      "EL_ID": { 
      "$oid": "element_ID_1" 
      }, 
      "name": "one", 
      "vote": 5 
     }, 

     "element_ID_2": { 
      "EL_ID": { 
      "$oid": "element_ID_2" 
      }, 
      "name": "two", 
      "vote": 5 
     } 
    }, 
     "_links": {}, 
     "_type": "DOCUMENT", 
     "_id": {}, 
     "_created_on": "date" 
} 

или, например, (тот же принцип): _embedded -> elements_lista -> "element_ID_n"

я не мог найти пример, применимый к моему делу (из java-кода), любое предложение оценивается, спасибо.

ответ

0

после некоторых попыток я просто решается создавая ArrayList со всеми элементами и присоединять это в документе с ключом строки «_embedded»

0

Это нужно обрабатывать так, как вы вставляете данные на карту.

Раньше вы устанавливали ключи EL_ID, имя и голосовали на главной карте. Однако вам нужно создать карту, в которой должны быть указаны _embedded и упомянутые выше ключи.

Когда этот общий DTO вставлен в БД, он будет сохранен в упомянутой структуре.

+0

Я не использовал карту в этой части программы (идентификаторы сохраненный в списке), на данный момент я оставляю как есть. Если у меня будет время позже, я улучшу документ. Спасибо, однако. – adev

Смежные вопросы