C# Mongodb 添加字段

本文关键字:字段 添加 Mongodb | 更新日期: 2023-09-27 18:33:52

我在寻找解决问题的方法时陷入困境。我用谷歌搜索它,但似乎没有结果。我想将现有集合作为字段添加到另一个集合。我有两个集合,名为productsproduct_update。两个集合都有ean字段。因此,我想添加一个product_update集合作为字段,以products它们具有相同的ean。这是我的代码:

var collection1 = Database.GetCollection<Entity>("products");
var collection2 = Database.GetCollection<Update>("product_update");
var productupdate = collection2.FindAll();
foreach (var a in productupdate)
{
    try
    {
        var b = collection1.FindOne(Query.EQ("product.ean",a.ean));
        BsonDocument product_update = new BsonDocument{
            {"ean",a.ean},
            {"categody",a.category},
            {"list_price_excl_tax",a.list_price_excl_tax},
            {"list_price_incl_tax",a.list_price_incl_tax},
            {"cost_price",a.cost_price},
            {"stock",a.stock},
            {"weight",a.weight},
            {"currency",a.currency},
            {"price_type",a.price_type}
        };
        //then I wanted to insert this product_update to variable b/query
    }
    catch (Exception ex) { }
}

C# Mongodb 添加字段

向实体添加一个字段以保存更新:

 public List<Update> Updates {get; set;}

然后使用 MongoDB 运算符$push将更新添加到此字段。 有关详细信息,请参阅有关$push的文档。

请注意,如果执行此操作,并且还将更新存储在更新集合中,则存储数据的副本,并且无法在添加更新后简单地修改更新。 您可能希望在查询时手动联接两个集合(即获取实体,然后获取其所有更新(,或者您可能只想完全消除 Update 集合并仅将它们存储在实体中。

根据您到目前为止显示的内容,看起来消除更新的集合并简单地将它们嵌套为实体中的复杂对象是正确的方法,因为更新不能独立。

但是,如果您期望进行大量更新,则无法执行此操作,因为您将超过最大文档大小,因此您将返回到单独存储它们。