© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•4y ago•
4 replies
LazyGuard

❔ Is there a way to improve this code Performance ?

have a collection of items that have 
_id
_id
 and 
serialNumbers
serialNumbers
 (an array) fields (and other fields as well but irrelevant for the question).

I want to do the following:
0. Check that the 
newSerialNumber
newSerialNumber
 is not used in any document.
1. Filter to find out the item with the given 
id
id
, lets name it 
ItemX
ItemX

2. Get all the items that have the same serialNumbers as 
ItemX
ItemX
. Let's name them 
ItemsWithSameSerialNumbersAsItemX
ItemsWithSameSerialNumbersAsItemX

3. For each one of the 
ItemsWithSameSerialNumbersAsItemX
ItemsWithSameSerialNumbersAsItemX
, push the 
newSerialNumber
newSerialNumber


I am doing it as following:
var itemsWithNewSerialNumber = items.find( x => x.SerialNumbers == newSerialNumber );
if (itemsWithNewSerialNumber.Count > 0) {
  // throw exception
}

var itemX = items.findOne( x => x.ItemId == Id );

var itemsWithSameSerialNumbersAsItemX = items.find( x => x.SerialNumbers == itemX.SerialNumbers);

var updateDef = Builders<ItemsDto>.Update; 

var updates = new List<UpdateDefinition<ItemDto>> 
{
  updateDef.Push(x => x.SerialNumbers, newSerialNumber)
}
items.updateMany(
   x => x.SerialNumbers,
   updates }
)
var itemsWithNewSerialNumber = items.find( x => x.SerialNumbers == newSerialNumber );
if (itemsWithNewSerialNumber.Count > 0) {
  // throw exception
}

var itemX = items.findOne( x => x.ItemId == Id );

var itemsWithSameSerialNumbersAsItemX = items.find( x => x.SerialNumbers == itemX.SerialNumbers);

var updateDef = Builders<ItemsDto>.Update; 

var updates = new List<UpdateDefinition<ItemDto>> 
{
  updateDef.Push(x => x.SerialNumbers, newSerialNumber)
}
items.updateMany(
   x => x.SerialNumbers,
   updates }
)


Here I am making 4 calls to the database (3 finds and 1 update). Is there some way to write this more efficiently ?
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

❔ ✅ Is there a Way to extend this code from this yt tutorial
C#CC# / help
3y ago
Is there a way I can improve this code? I feel its kind of hard to understand
C#CC# / help
2y ago