上限のあるコレクションから挿入順にドキュメントを取得する
キャップ付きコレクションはドキュメントを挿入順に維持するため、理想的には自然な順序
生成された_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});
}
}