sql >> Base de Datos >  >> NoSQL >> MongoDB

Controlador MongoDB C# y ObjectId generados por el servidor

Obtener documentos en orden de inserción de una colección limitada

Las colecciones limitadas mantienen los documentos en orden de inserción, por lo que lo ideal es usar orden natural en lugar de confiar en la marca de tiempo en el _id generado . Su cursor rastreable leerá documentos en orden natural, por lo que no debe hacer suposiciones basadas en el _id .

Generando _id del lado del servidor

Para generar _id en el lado del servidor usando el controlador C# necesita:

  • establecer el atributo de clase [BsonIgnoreIfDefault]
  • establecer el atributo de colección AssignIdOnInsert = false
  • insertar un documento sin un _id

Ejemplo:

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});
    }
}