sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB C# Driver- og servergenererede ObjectId'er

Få dokumenter i indsættelsesrækkefølge fra en begrænset samling

Begrænsede samlinger vedligeholder dokumenter i indsættelsesrækkefølge, så du bør ideelt set bruge naturlig orden i stedet for at stole på tidsstemplet i det genererede _id . Din tailable cursor vil læse dokumenter i naturlig rækkefølge, så du bør ikke foretage nogen antagelser baseret på _id .

Generer _id på serversiden

For at generere _id på serversiden ved hjælp af C#-driveren skal du:

  • indstil klasseattributten [BsonIgnoreIfDefault]
  • indstil samlingsattributten AssignIdOnInsert = false
  • indsæt et dokument uden et _id

Eksempel:

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. Hvorfor vil min mongodb ikke oprette forbindelse til port 28017?

  2. Returnerer en tom række af indlæg, når du bruger mongoose populate

  3. MongoDB - Hvad med decimaltype værdi?

  4. ServiceStack.Redis Kan ikke læse transport - BasicRedisClientManager