Создайте монго-документ со списком документов на Java - PullRequest
0 голосов
/ 29 июня 2018

Я хотел бы создать монго-документ на Java для вставки в мою коллекцию монго. В настоящее время в используемом мной документе монго нет списка документов, и я хочу добавить его.

Мой документ должен выглядеть примерно так:

{
 id : 1,
 events : [
           { event_id : 1, processed : false},
           { event_id : 2, processed : false},
           .
           .
          ],
 assigned_user : 32
}

Чтобы создать монго-документ, я вынужден создать

Map<String, Object> dataFields

, затем преобразуйте его в монго-документ.

Итак, чтобы добавить список необходимых мне документов, я подумал о создании

 List<Document> events

затем создайте документ для каждого нужного мне события, затем добавьте его в список events.

Наконец, я бы просто добавил список events на карту dataFields, а затем создал бы окончательный документ монго.

Будет ли это работать? Если нет, то в чем недостаток? Логика или реализация?

1 Ответ

0 голосов
/ 02 июля 2018

Если у вас есть идея, попробуйте ее. И если среда вашего проекта не позволяет вам попробовать, поместите ее в «песочницу». Я попробую, но моя Java ржавая, и у меня нет JDK на этом компьютере. Начните с этого:

public class MongoSandbox {

    public static void main(String[] args) throws UnknownHostException {

        // Connect to local test db
        MongoClientURI uri  = new MongoClientURI("mongodb://localhost:27017/test"); 
        MongoClient client = new MongoClient(uri);
        MongoDatabase db = client.getDatabase(uri.getDatabase());

        // Get a test collection
        MongoCollection<Document> docs = db.getCollection("docs");

        /* Create a dummy list of events  */
        List<Document> events = new ArrayList<Document>();
        events.add(new Document("random", "data"));
        events.add(new Document("random", "data2"));
        events.add(new Document("random", "data3"));

        // Create your main document
        Document mainDoc = new Document("events", events);
        docs.insert(mainDoc);

        client.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...