Как хранить один и тот же документ в нескольких коллекциях - PullRequest
0 голосов
/ 01 февраля 2019

Я использую mongoOperations из 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 {
}

1 Ответ

0 голосов
/ 01 февраля 2019

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

единственное решение может быть зацикливание и использование $ 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();
                    });
            });
...