Получаване на документи в ред на вмъкване от ограничена колекция
Ограничените колекции поддържат документи в ред на вмъкване, така че в идеалния случай трябва да използвате естествен ред
вместо да разчитате на клеймото за време в генерирания _id
. Курсорът ви с възможност за опаковане ще чете документи в естествен ред, така че не трябва да правите предположения въз основа на _id
.
Генериране на _id
от страната на сървъра
За генериране на _id
от страната на сървъра, като използвате драйвера C#, трябва да:
- задайте атрибута на класа
[BsonIgnoreIfDefault]
- задайте атрибута на колекцията
AssignIdOnInsert = false
- вмъкване на документ без
_id
Пример:
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});
}
}