【问题标题】:How to store same document in multiple collection如何将相同的文档存储在多个集合中
【发布时间】:2019-06-25 16:55:42
【问题描述】:

我正在使用 Spring Data mongodb 的 mongoOperations 存储到 MongoDB// mongoOperations.save(reqObj);

我需要将相同的 JSON 文档保存为两个集合中的 rest API 响应。

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

我可以保存在集合 collection_a 中。我还需要将相同的 json 保存在另一个集合 collection_b 中。

我是否应该创建另一个类似下面的类并将值从 Response 复制到 ResponseCopy?还是有更好的方法。

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

【问题讨论】:

    标签: mongodb spring-data spring-mongodb spring-mongo


    【解决方案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();
                        });
                });
    

    【讨论】:

    • 我已经通过 orika mapper 将值从 Response 复制到 ResponseCopy 并分别保存在集合中。
    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多