假设我有一个产品 list .当我添加一个新产品时,我会使用

var doc=products.Insert<ProductPDO>(p);

问题是,我想在完成后将用户重定向到带有产品的页面.所以我需要重定向到/products/<ObjectID>

然而,如果不手动查询数据库并查找包含所有相同字段的文档等,我看不到任何方法可以在之后正确获取ObjectID.

有没有更简单的方法?(此外,由于某种原因,本例中的doc返回null)

推荐答案

Insert方法自动设置声明为模型的BSON ID的属性.

如果声明如下...

[BsonId]
public ObjectId Id { get; set; }

... 然后,将对象插入集合后,Id字段将包含对象的默认(新的、唯一的)BSON ID:

coll.Insert(obj);
// obj.Id is now the BSON ID of the object

Mongodb相关问答推荐

MongoDB.ArrayFilters出错:在路径中找不到标识符';elem';的数组筛选器

MongoDB - 将对象转换为数组

MongoDB 根据最新日期查询多个不同的值

无法通过管理邮箱/密码身份验证注册/登录新用户帐户(类型错误:加载失败)

在 MongoDB 中加入多个集合

有没有办法从另一条记录中插入一条记录

在mongodb中,如何使用聚合来获取字段之间的对应关系

根据状态过滤 mongoDb 中的结果

如何在mongoDB中按嵌套文档分组( group by )

有谁知道这个错误的修复方法(TypeError: Cannot assign to read only property ‘map’ of object '#')

Mocking/stubbing mongoose模型保存方法

带有 mongodb 和 nodejs 的实时 Web 应用程序

在mongodb中实现分页

使用 Node.js 和 mongodb 处理超时

MongoDB:在集合上设置 TTL 索引时出错: sessions

MongoDB聚合排序不起作用

MongoDB Java API:put() 与 append()

查询 Mongoid/rails 3 中的嵌入对象(Lower than、Min 运算符和排序)

使用自定义 _id 值时 mongodb 中的 Upserts

如何在mongoose的嵌套填充中 Select 特定字段