Dokumente in der Einfügereihenfolge aus einer begrenzten Sammlung abrufen
Begrenzte Sammlungen verwalten Dokumente in der Reihenfolge der Einfügungen, daher sollten Sie idealerweise natürliche Reihenfolge
anstatt sich auf den Zeitstempel in der generierten _id
zu verlassen . Ihr Tailable-Cursor liest Dokumente in natürlicher Reihenfolge, also sollten Sie keine Annahmen basierend auf der _id
treffen .
Serverseitige _id
wird generiert
Zum Generieren von _id
Auf der Serverseite mit dem C#-Treiber müssen Sie:
- Setzen Sie das Klassenattribut
[BsonIgnoreIfDefault]
- setzen Sie das Sammlungsattribut
AssignIdOnInsert = false
- fügen Sie ein Dokument ohne
_id
ein
Beispiel:
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});
}
}