Как хранить один и тот же документ в нескольких коллекциях
Я использую 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 ответ
В настоящее время нет возможности сделать это. Возможно, вам придется поддерживать два класса для двух документов.
единственное решение может быть зацикливание и использование $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();
});
});