You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在LiteDB中如何获取自动生成的Object类型_id值?

获取LiteDB自动生成的_id值

要获取LiteDB自动生成的_id值,有两种简单可行的方式:

方法一:在Account模型中显式定义_id字段

LiteDB默认将名为_id的字段作为文档主键,你可以直接在Account类中添加对应类型的_id属性,插入数据后就能直接访问该属性获取值。

修改后的Account类(使用ObjectId类型匹配LiteDB自动生成的ID):

public class Account
{
    public ObjectId _id { get; set; }
    public string? Username { get; set; }
    public string? Password { get; set; }
}

若需要字符串格式的ID,也可将_id定义为string类型(LiteDB会自动完成类型转换):

public class Account
{
    public string? _id { get; set; }
    public string? Username { get; set; }
    public string? Password { get; set; }
}

修改后插入代码中直接访问_id:

using LiteDB;

using (var db = new LiteDatabase(@"C:\litedb\test.db"))
{
    var accountCollection = db.GetCollection<Account>("Account");
    Account account = new Account
    {
        Username = "root",
        Password = "123456"
    };
    accountCollection.Insert(account);
    // 直接获取生成的_id值
    Console.WriteLine(account._id); // 输出类似642ec0a9f6aecc035cd15f5e的内容
}

方法二:使用Insert方法的返回值

如果不想修改现有Account模型,可以直接接收Insert方法的返回值,该值就是自动生成的主键(ObjectId类型)。

代码示例:

using LiteDB;

using (var db = new LiteDatabase(@"C:\litedb\test.db"))
{
    var accountCollection = db.GetCollection<Account>("Account");
    Account account = new Account
    {
        Username = "root",
        Password = "123456"
    };
    // 接收Insert返回的主键值
    ObjectId generatedId = accountCollection.Insert(account);
    // 转换为字符串输出
    Console.WriteLine(generatedId.ToString()); // 输出642ec0a9f6aecc035cd15f5e
}

内容的提问来源于stack exchange,提问作者Nyakohub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:22:21