Skip to content

Commit 33cae16

Browse files
committed
first draft
1 parent f6c7464 commit 33cae16

File tree

3 files changed

+22
-70
lines changed

3 files changed

+22
-70
lines changed

source/fundamentals/crud/write-operations.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ Write Operations
1111
:caption: Write Operations
1212

1313
Insert </fundamentals/crud/write-operations/insert>
14-
Update </fundamentals/crud/write-operations/update-one>
15-
Update </fundamentals/crud/write-operations/update-many>
14+
Update One </fundamentals/crud/write-operations/update-one>
15+
Update Many </fundamentals/crud/write-operations/update-many>
1616
Replace </fundamentals/crud/write-operations/replace>
1717
Delete </fundamentals/crud/write-operations/delete>
1818
Bulk Write Operations </fundamentals/crud/write-operations/bulk-write>

source/includes/code-examples/update-many/UpdateManyArrays.cs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public static UpdateResult UpdateManyPushEach()
106106
var newGrades = new List<GradeEntry>
107107
{
108108
new GradeEntry { Date = DateTime.Now, Grade = "A", Score = 95 },
109-
new GradeEntry { Date = DateTime.Now, Grade = "B+", Score = 89, }
109+
new GradeEntry { Date = DateTime.Now, Grade = "B+", Score = 89,}
110110
};
111111

112112
var scoreSort = Builders<GradeEntry>.Sort.Descending(g => g.Score);
@@ -132,7 +132,7 @@ public static async Task<UpdateResult> UpdateManyPushEachAsync()
132132
var newGrades = new List<GradeEntry>
133133
{
134134
new GradeEntry { Date = DateTime.Now, Grade = "A", Score = 95 },
135-
new GradeEntry { Date = DateTime.Now, Grade = "B+", Score = 89, }
135+
new GradeEntry { Date = DateTime.Now, Grade = "B+", Score = 89,}
136136
};
137137

138138
var scoreSort = Builders<GradeEntry>.Sort.Descending(g => g.Score);
@@ -255,7 +255,7 @@ public static UpdateResult UpdateManyPull()
255255
var newGrades = new List<GradeEntry>
256256
{
257257
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95 },
258-
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95, }
258+
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95,}
259259
};
260260
var addUpdate = Builders<Restaurant>.Update
261261
.PushEach("Grades", newGrades);
@@ -281,7 +281,7 @@ public static async Task<UpdateResult> UpdateManyPullAsync()
281281
var newGrades = new List<GradeEntry>
282282
{
283283
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95 },
284-
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95, }
284+
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95,}
285285
};
286286
var addUpdate = Builders<Restaurant>.Update
287287
.PushEach("Grades", newGrades);
@@ -307,9 +307,9 @@ public static UpdateResult UpdateManyPullAll()
307307
var newGrades = new List<GradeEntry>
308308
{
309309
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95 },
310-
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95, },
310+
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95,},
311311
new GradeEntry { Date = DateTime.MinValue, Grade = "B", Score = 85 },
312-
new GradeEntry { Date = DateTime.MinValue, Grade = "B", Score = 85, }
312+
new GradeEntry { Date = DateTime.MinValue, Grade = "B", Score = 85,}
313313
};
314314
var addUpdate = Builders<Restaurant>.Update
315315
.PushEach("Grades", newGrades);
@@ -336,9 +336,9 @@ public static async Task<UpdateResult> UpdateManyPullAllAsync()
336336
var newGrades = new List<GradeEntry>
337337
{
338338
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95 },
339-
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95, },
339+
new GradeEntry { Date = DateTime.MinValue, Grade = "A", Score = 95,},
340340
new GradeEntry { Date = DateTime.MinValue, Grade = "B", Score = 85 },
341-
new GradeEntry { Date = DateTime.MinValue, Grade = "B", Score = 85, }
341+
new GradeEntry { Date = DateTime.MinValue, Grade = "B", Score = 85,}
342342
};
343343
var addUpdate = Builders<Restaurant>.Update
344344
.PushEach("Grades", newGrades);
@@ -365,9 +365,9 @@ public static UpdateResult UpdateManyPullFilter()
365365
var newGrades = new List<GradeEntry>
366366
{
367367
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 10 },
368-
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 21, },
368+
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 21,},
369369
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 47 },
370-
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 6, }
370+
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 6,}
371371
};
372372
var addUpdate = Builders<Restaurant>.Update
373373
.PushEach("Grades", newGrades);
@@ -393,9 +393,9 @@ public static async Task<UpdateResult> UpdateManyPullFilterAsync()
393393
var newGrades = new List<GradeEntry>
394394
{
395395
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 10 },
396-
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 21, },
396+
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 21,},
397397
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 47 },
398-
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 6, }
398+
new GradeEntry { Date = DateTime.Now, Grade = "F", Score = 6,}
399399
};
400400
var addUpdate = Builders<Restaurant>.Update
401401
.PushEach("Grades", newGrades);
@@ -415,7 +415,7 @@ public static UpdateResult UpdateManyPositional()
415415
{
416416
// start-update-many-positional
417417
var filter = Builders<Restaurant>.Filter
418-
.Eq("name", "Downtown Deli") &
418+
.Eq("name", "Downtown Deli") &
419419
Builders<Restaurant>.Filter.Eq("grades.grade", "A");
420420

421421
// Set Score = 100 in first GradeEntry where Grade = "A"
@@ -432,7 +432,7 @@ public static UpdateResult UpdateManyPositionalLinq()
432432
{
433433
// start-update-many-positional-linq
434434
var filter = Builders<Restaurant>.Filter
435-
.Eq("name", "Downtown Deli") &
435+
.Eq("name", "Downtown Deli") &
436436
Builders<Restaurant>.Filter.Eq("grades.grade", "A");
437437

438438
var update = Builders<Restaurant>.Update
@@ -447,7 +447,7 @@ public static async Task<UpdateResult> UpdateManyPositionalAsync()
447447
{
448448
// start-update-many-positional-async
449449
var filter = Builders<Restaurant>.Filter
450-
.Eq("name", "Downtown Deli") &
450+
.Eq("name", "Downtown Deli") &
451451
Builders<Restaurant>.Filter
452452
.Eq("grades.grade", "A");
453453

@@ -465,7 +465,7 @@ public static async Task<UpdateResult> UpdateManyPositionalLinqAsync()
465465
{
466466
// start-update-many-positional-linq-async
467467
var filter = Builders<Restaurant>.Filter
468-
.Eq("name", "Downtown Deli") &
468+
.Eq("name", "Downtown Deli") &
469469
Builders<Restaurant>.Filter.Eq("grades.grade", "A");
470470

471471
var update = Builders<Restaurant>.Update
@@ -552,7 +552,7 @@ public static UpdateResult UpdateManyFilteredPositional()
552552
new BsonDocumentArrayFilterDefinition<Restaurant>(
553553
new BsonDocument
554554
{
555-
{ "gradeEntry.score", new BsonDocument { { "$gte", 94 } } }
555+
{ "gradeEntry.score", new BsonDocument { { "$gte", 94} } }
556556
})
557557
};
558558

@@ -578,7 +578,7 @@ public static UpdateResult UpdateManyFilteredPositionalLinq()
578578
new BsonDocumentArrayFilterDefinition<Restaurant>(
579579
new BsonDocument
580580
{
581-
{ "gradeEntry.score", new BsonDocument { { "$gte", 94 } } }
581+
{ "gradeEntry.score", new BsonDocument { { "$gte", 94} } }
582582
})
583583
};
584584

@@ -603,7 +603,7 @@ public static async Task<UpdateResult> UpdateManyFilteredPositionalAsync()
603603
new BsonDocumentArrayFilterDefinition<Restaurant>(
604604
new BsonDocument
605605
{
606-
{ "gradeEntry.score", new BsonDocument { { "$gte", 94 } } }
606+
{ "gradeEntry.score", new BsonDocument { { "$gte", 94} } }
607607
})
608608
};
609609

@@ -629,7 +629,7 @@ public static async Task<UpdateResult> UpdateManyFilteredPositionalLinqAsync()
629629
new BsonDocumentArrayFilterDefinition<Restaurant>(
630630
new BsonDocument
631631
{
632-
{ "gradeEntry.score", new BsonDocument { { "$gte", 94 } } }
632+
{ "gradeEntry.score", new BsonDocument { { "$gte", 94} } }
633633
})
634634
};
635635

source/includes/page-templates/update/arrays.rst

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -352,54 +352,6 @@ to 100 in |matching-document-or-documents|:
352352

353353
|allpositional-code-example-tabs|
354354

355-
LINQ3 Provider
356-
~~~~~~~~~~~~~~
357-
358-
LINQ syntax contains a positional operator (``$``) that you can use to update elements in an array field.
359-
Previous versions of the {+driver-short+} supported both the LINQ2 and LINQ3 providers.
360-
In LINQ2, you could use ``-1`` to indicate use of the positional operator.
361-
362-
For example, the ``Restaurant`` class contains an array field named ``Grades`` that
363-
contains multiple ``GradeEntry`` elements. If your application were using the LINQ2
364-
provider, you could use the following code sample to update the
365-
``Grade`` field of the first element in this array:
366-
367-
.. code-block:: csharp
368-
:linenos:
369-
370-
var anArrayId = ObjectId.GenerateNewId();
371-
var another = new Restaurant
372-
{
373-
Id = ObjectId.GenerateNewId(),
374-
AnArrayMember = new List<AnArrayClass>
375-
{
376-
new AnArrayClass { Id = anArrayId, Deleted = false }
377-
}
378-
};
379-
380-
await collection.UpdateOneAsync(
381-
r => r.Id == "targetId" && r.AnArrayMember.Any(l => l.Id == anArrayId),
382-
Builders<Restaurant>.Update.Set(l => l.AnArrayMember.ElementAt(-1).Deleted, true));
383-
384-
.. code-block:: csharp
385-
:linenos:
386-
387-
var anArrayId = ObjectId.GenerateNewId();
388-
var another = new Restaurant
389-
{
390-
Id = ObjectId.GenerateNewId(),
391-
AnArrayMember = new List<AnArrayClass>
392-
{
393-
new AnArrayClass { Id = anArrayId, Deleted = false }
394-
}
395-
};
396-
397-
await collection.UpdateOneAsync(
398-
r => r.Id == "targetId" && r.AnArrayMember.Any(l => l.Id == anArrayId),
399-
Builders<Restaurant>.Update.Set(l => l.AnArrayMember.ElementAt(-1).Deleted, true));
400-
401-
This no longer works in LINQ3. Instead, you must use the following syntax:
402-
403355
API Documentation
404356
-----------------
405357

0 commit comments

Comments
 (0)