Documenten in invoegvolgorde ophalen uit een gelimiteerde verzameling
Afgetopte collecties houden documenten bij in invoegvolgorde, dus u zou idealiter natuurlijke volgorde
in plaats van te vertrouwen op de tijdstempel in de gegenereerde _id
. Uw volgbare cursor leest documenten in natuurlijke volgorde, dus u mag geen aannames doen op basis van de _id
.
Server-side _id
genereren
Om _id
te genereren aan de serverzijde met behulp van het C#-stuurprogramma moet u:
- stel het klassekenmerk in
[BsonIgnoreIfDefault]
- stel het verzamelingskenmerk in
AssignIdOnInsert = false
- voeg een document in zonder een
_id
Voorbeeld:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Bson.Serialization.Attributes;
public class MyDoc {
[BsonIgnoreIfDefault]
public ObjectId? Id;
public int X;
}
public static class Program {
public static void Main(string[] args) {
MongoClient client = new MongoClient(); // connect to localhost
var server = client.GetServer ();
var database = server.GetDatabase("test");
var collectionSettings = new MongoCollectionSettings { AssignIdOnInsert = false };
var collection = database.GetCollection<MyDoc>("nullid", collectionSettings);
// Insert document without _id
collection.Insert(new MyDoc { X = 1});
}
}