Как сохранить один и тот же документ в нескольких коллекциях

Я использую mongoOperations of Spring Data mongodb для хранения в MongoDB// mongoOperations.save(reqObj);

Мне нужно сохранить один и тот же документ JSON, который я получаю в качестве ответа остального API, в двух коллекциях.

@Document(collection="collection_a")
public class Response {
}

Я умею сохранять в коллекции collection_a. Мне также нужно сохранить тот же json в другой коллекции collection_b.

Должен ли я создать еще один класс, как показано ниже, и скопировать значение из Response в ResponseCopy? или есть лучший подход.

@Document(collection="collection_b")
public class ResponseCopy {
}

person user1346346    schedule 01.02.2019    source источник


Ответы (1)


В настоящее время нет возможности сделать это. Вам может понадобиться поддерживать два класса для двух документов.

единственным решением может быть зацикливание и использование $lookup, как указано в их документе: https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

db.collection('collection_a').findAndModify(
            { "_id": ObjectId(req.body.id) },
            [],
            { $set: { "delete": req.body.delete } },
            { new: true },
            function (err, data123) {
                if (err) throw err;
                db.collection('collection_a').findAndModify(
                    { "_id": ObjectId(req.body.error_id) },
                    [],
                    { $set: { "read": true } },
                    { new: true },
                    function (err, data1234) {
                        if (err) throw err;

                        res.write(JSON.stringify(data1234.value));
                        res.end();
                        db.close();
                    });
            });
person Mebin Joe    schedule 01.02.2019
comment
Я сделал это, скопировав значение из Response в ResponseCopy с помощью orika mapper и сохранив в коллекциях отдельно. - person user1346346; 04.02.2019