Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. var client = new MongoClient();
  2. var database = client.GetDatabase("databasename");
  3. var collection = database.GetCollection<Customer>("Customer");
  4.  
  5.  
  6. var customerId = "..";
  7. var builder = Builders<Customer>.Filter;
  8. var filter = builder.Eq("Id", new ObjectId(customerId));
  9. var matchedRecord = collection.Find(filter).SingleOrDefault();
  10.  
  11. // Insert new invoice into the customer record
  12. matchedRecord.Invoices.Add(new Invoice {
  13. InvoiceNumber = "123456"
  14. });
  15.  
  16. collection.InsertOne(matchedRecord); // Error produced below
  17.  
  18. E11000 duplicate key error collection: databasename.Customer index: _id_ dup key: { : ObjectId('..') }
  19.  
  20. public class Customer
  21. {
  22. public ObjectId Id { get; set; }
  23.  
  24. public string CustomerId { get; set; }
  25.  
  26. public List<Invoice> Invoices { get; set; }
  27. }
  28.  
  29. public class Invoice
  30. {
  31. public string InvoiceNumber { get; set; }
  32. }
  33.  
  34. var builder = Builders<Customer>.Filter;
  35. var filter = builder.Eq("Id", new ObjectId(customerId));
  36.  
  37. // Not sure how to use the FindOneAndUpdate method(?)
  38. var matchedRecord = collection.FindOneAndUpdate<Customer>(filter);
  39.  
  40. var builder = Builders<Customer>.Filter;
  41. var filter = builder.Eq("Id", new ObjectId(customerId));
  42. var update = Builders<Customer>.Update.Set("Invoice.ClientName", "HELLO");
  43.  
  44. var update = Builders<Customer>.Update
  45. .Set("Invoices", new Invoice
  46. {
  47. ClientName = "HELLO"
  48. });
  49.  
  50. var result = collection.UpdateOneAsync(filter, update);
  51.  
  52. var update = Builders<Customer>.Update.Push("Invoices", new Invoice
  53. {
  54. ClientName = "HELLO"
  55. });
  56.  
  57. var result = collection.UpdateOneAsync(filter, update);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement