sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB C# Driver a server generované ObjectId

Získání dokumentů v pořadí vložení z omezené kolekce

Omezené kolekce uchovávají dokumenty v pořadí vkládání, takže byste měli ideálně používat přirozený řád místo spoléhání se na časové razítko ve vygenerovaném _id . Váš tabulkový kurzor bude číst dokumenty v přirozeném pořadí, takže by neměl vytvářet žádné předpoklady založené na _id .

Generování _id na straně serveru

Chcete-li vygenerovat _id na straně serveru pomocí ovladače C# musíte:

  • nastavte atribut třídy [BsonIgnoreIfDefault]
  • nastavte atribut kolekce AssignIdOnInsert = false
  • vložte dokument bez _id

Příklad:

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



  1. Chyba připojení Mongodb prostřednictvím dockeru ve Springbootu

  2. Vytvářejte dynamické dotazy pomocí Spring Data MongoDB Criteria

  3. Mapovat/zmenšovat a třídit vnořený dokument

  4. Nelze získat krytý dotaz pro sdílenou kolekci v MongoDB