sql >> データベース >  >> NoSQL >> MongoDB

MongoDB C#ドライバーとサーバーで生成されたObjectId

    上限のあるコレクションから挿入順にドキュメントを取得する

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



    1. マングースポピュレートはnull配列を返します

    2. MongoDB Atlasに接続するときに「エラー:querySrv EREFUSED」を修正する方法は?

    3. マングース-ObjectIdの配列でPopulateを使用する

    4. マングースがコレクション名の最後に常にsを追加するのはなぜですか