Obtenir des documents dans l'ordre d'insertion à partir d'une collection limitée
Les collections plafonnées maintiennent les documents dans l'ordre d'insertion, vous devriez donc idéalement utiliser ordre naturel
plutôt que de se fier à l'horodatage dans le _id
généré . Votre curseur tailable lira les documents dans l'ordre naturel, donc ne devrait pas faire d'hypothèses basées sur le _id
.
Génération de _id
côté serveur
Pour générer _id
côté serveur à l'aide du pilote C#, vous devez :
- définir l'attribut de classe
[BsonIgnoreIfDefault]
- définissez l'attribut de collection
AssignIdOnInsert = false
- insérer un document sans
_id
Exemple :
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});
}
}