I have item
class:
class item
{
[BsonId]
public ObjectId _id { get; set; }
public int code { get; set; }
public string Name { get; set; }
public int salePrice { get; set; }
public int itemCount{ get; set; }
}
I like to update itemCount
by one using the code
I can do this with 2 step:
First: Find the itemCount
using code
as filter:
var filter = Builders<item>.Filter.Eq("code", listitems.code);
var itemsCollection = _database.GetCollection<item>("item");
var itemsList = itemsCollection.Find(filter).ToList<item>();
Second: Increment itemCount
and then update the document:
int itemsCounter = 0;
if (itemsList.Count()>0)
itemsCounter = itemsList.ElementAt(0).itemCount;
itemsCounter++ ;
filter = Builders<item>.Filter.Eq("code", listitems.code);
itemsCollection = _database.GetCollection<item>("item");
var update = Builders<item>.Update.Set("itemCount", itemsCounter);
var result = itemsCollection.UpdateOne(filter, update);
my question: can I do this in one step?