如何使用C#

时间:2019-07-24 11:36:53

标签: c# mongodb

我正在尝试使用C#从mongodb中获取与当前日期相比的前一个Date记录。

场景:在mongodb的productStock集合中,已购买的商品是根据购买日期,商品的库存,商品的名称和数量存储的。

在同一商品-sku的新购买期间,需要获取以前的购买日期和数量。

与同一项目一样,库存数量要与旧库存相加。

示例:购买#1的商品A,发生在6月25日,数量为20。 7月24日再次以25数量再次购买商品A的#2。

如何通过单个查询获取先前记录的详细信息并添加到新记录。

注意:购买发生于多个项目。

我尝试过两次调用数据库调用,首先是获取给定项目的所有记录,然后使用limit(1)进行过滤以从当前日期中获取先前的日期。

然后再次更新当前记录并调用bulkUpdate到mongo集合。

FilterDefinitionBuilder<IProductStock> filterBuilder = new FilterDefinitionBuilder<IProductStock>();

filter = filterBuilder.Where(x => itemskuList.Contains(x.ItemSku) && x.purchaseDateTime < currentDateTime);

List<IProductStock> result = await Task.Run(() => this.Collection.Find(filter).Sort(Builders<List<IProductStock>>.Sort.Descending("purchaseDateTime"))
                                        .Limit(1).FirstOrDefault());


//loop through the list and update with new Purchased Item(s)
//Do BulkInsert/Update

预期:只需为所有项目调用一次mongo集合,并获取先前的最后一条记录并更新当前记录。

0 个答案:

没有答案