MongoDB C#驱动程序和服务器生成的ObjectId

凯莉·塞尔登

有没有办法获取服务器生成的ObjectId而不是C#驱动程序生成的ObjectId?使用MongoCollectionSettings.AssignIdOnInsert = falseonly可使您清零ObjectIds。我正在对一个封闭的集合进行多线程插入,并且看到线程在ObjectId生成和插入之间切换。这会导致应该按自然顺序排序的带尾游标排序的集合中的ObjectIds乱序。现在,我正在为插入使用静态锁定对象,但这对不同的可执行文件/服务器没有帮助。

似乎可以通过pymongo驱动程序实现:服务器在pymongo上生成的ObjectID

斯坦尼

从上限集合中按插入顺序获取文档

上限集合按插入顺序维护文档,因此,理想情况下,您应使用自然顺序,而不要依赖Generate的时间戳_id您的尾部光标将以自然顺序阅读文档,因此不应基于进行任何假设_id

生成服务器端 _id

_id使用C#驱动程序在服务器端生成,您需要:

  • 设置class属性 [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});
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MongoDB C#驱动程序和服务器生成的ObjectId

来自分类Dev

使用MongoDB C#驱动程序2.0进行服务器端投影

来自分类Dev

从 C# 驱动程序触发到本地托管的 Mongodb 服务器的查询

来自分类Dev

具有C#驱动程序2.0的MongoDB(服务器v 2.6.7):如何从InsertOneAsync获取结果

来自分类Dev

MongoDB C#2.0驱动程序-如何计算服务器上的聚合计数?

来自分类Dev

在MongoDB C#驱动程序中获取生成的脚本

来自分类Dev

MongoDB .net驱动程序-获取MongoDB服务器版本

来自分类Dev

MongoDB C#驱动程序超时

来自分类Dev

使用Update.Push时,mongodb C#驱动程序未在嵌入式对象列表中生成新添加文档的ObjectId

来自分类Dev

MongoDB C#驱动程序-如何将_id存储为ObjectId但映射到字符串Id属性?

来自分类Dev

MongoDB C#驱动程序-如何将_id存储为ObjectId但映射到字符串Id属性?

来自分类Dev

如何在字符串字段和 ObjectId 之间进行查找 - MongoDB C# 驱动程序

来自分类Dev

是否使用C#驱动程序可用于MongoDB的文档验证器?

来自分类Dev

是否使用C#驱动程序可用于MongoDB的文档验证器?

来自分类Dev

MongoDB全文搜索C#驱动程序

来自分类Dev

如何使用MongoDB C#驱动程序进行$ lookup?

来自分类Dev

GroupBy Mongodb使用驱动程序C#

来自分类Dev

MongoDB C#驱动程序连接池

来自分类Dev

MongoDB C#驱动程序MongoCredential对象

来自分类Dev

Mongodb C#驱动程序和ISODate

来自分类Dev

检查插入是否成功(MongoDB C#驱动程序)

来自分类Dev

从2.0 MongoDb C#驱动程序获取结果

来自分类Dev

MongoDb与查询C#驱动程序不同

来自分类Dev

mongodb C#驱动程序更新多个字段

来自分类Dev

使用MongoDB C#驱动程序查询数组的数组

来自分类Dev

使用C#驱动程序从mongodb查询标签

来自分类Dev

MongoDB C#驱动程序字段投影

来自分类Dev

MongoDB C#驱动程序和DateTime字段

来自分类Dev

C#驱动程序2.0 Mongodb UpdateOneAsync

Related 相关文章

  1. 1

    MongoDB C#驱动程序和服务器生成的ObjectId

  2. 2

    使用MongoDB C#驱动程序2.0进行服务器端投影

  3. 3

    从 C# 驱动程序触发到本地托管的 Mongodb 服务器的查询

  4. 4

    具有C#驱动程序2.0的MongoDB(服务器v 2.6.7):如何从InsertOneAsync获取结果

  5. 5

    MongoDB C#2.0驱动程序-如何计算服务器上的聚合计数?

  6. 6

    在MongoDB C#驱动程序中获取生成的脚本

  7. 7

    MongoDB .net驱动程序-获取MongoDB服务器版本

  8. 8

    MongoDB C#驱动程序超时

  9. 9

    使用Update.Push时,mongodb C#驱动程序未在嵌入式对象列表中生成新添加文档的ObjectId

  10. 10

    MongoDB C#驱动程序-如何将_id存储为ObjectId但映射到字符串Id属性?

  11. 11

    MongoDB C#驱动程序-如何将_id存储为ObjectId但映射到字符串Id属性?

  12. 12

    如何在字符串字段和 ObjectId 之间进行查找 - MongoDB C# 驱动程序

  13. 13

    是否使用C#驱动程序可用于MongoDB的文档验证器?

  14. 14

    是否使用C#驱动程序可用于MongoDB的文档验证器?

  15. 15

    MongoDB全文搜索C#驱动程序

  16. 16

    如何使用MongoDB C#驱动程序进行$ lookup?

  17. 17

    GroupBy Mongodb使用驱动程序C#

  18. 18

    MongoDB C#驱动程序连接池

  19. 19

    MongoDB C#驱动程序MongoCredential对象

  20. 20

    Mongodb C#驱动程序和ISODate

  21. 21

    检查插入是否成功(MongoDB C#驱动程序)

  22. 22

    从2.0 MongoDb C#驱动程序获取结果

  23. 23

    MongoDb与查询C#驱动程序不同

  24. 24

    mongodb C#驱动程序更新多个字段

  25. 25

    使用MongoDB C#驱动程序查询数组的数组

  26. 26

    使用C#驱动程序从mongodb查询标签

  27. 27

    MongoDB C#驱动程序字段投影

  28. 28

    MongoDB C#驱动程序和DateTime字段

  29. 29

    C#驱动程序2.0 Mongodb UpdateOneAsync

热门标签

归档