sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB C# Drivrutin och servergenererade ObjectIds

Hämta dokument i insättningsordning från en begränsad samling

Begränsade samlingar upprätthåller dokument i insättningsordning, så du bör helst använda naturlig ordning istället för att förlita sig på tidsstämpeln i den genererade _id . Din tailable markör kommer att läsa dokument i naturlig ordning, så du bör inte göra några antaganden baserat på _id .

Genererar _id på serversidan

För att generera _id på serversidan med C#-drivrutinen behöver du:

  • ställ in klassattributet [BsonIgnoreIfDefault]
  • ställ in samlingsattributet AssignIdOnInsert = false
  • infoga ett dokument utan ett _id

Exempel:

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. Fjärranslutning till MongoDB-server med Codeigniter

  2. Ange flera kriterier för matriselement

  3. PyMongo Aggregate hur man får executionStats

  4. MongoDB $setOnInsert