sql >> Database >  >> NoSQL >> MongoDB

MongoDB C# Driver en server gegenereerde ObjectIds

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



  1. MongoDB GeoSpatial Index gebruiken in C++

  2. Een alleen-lezen verbinding maken met pymongo

  3. Spring slaat het object niet correct op in MongoDB

  4. Redis - geheugengebruik controleren