我正在尝试使用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集合,并获取先前的最后一条记录并更新当前记录。