我直接在Mongo shell中用嵌入文档的数组更新文档。我希望每个子文档都有一个_id字段,但它们不是自动创建的,因为它们是针对顶级文档的。有没有一种方法可以简单地在Mongo shell中创建一个新的ObjectId?类似如下的内容(下面的示例无效):
"prop": [
{
"_id": new ObjectId(), // creates the objectId when executing the line
"foo": "bar"
}
]
主要需求是不必手动为每个要创建的文档生成随机字符串。这
所以......我有一个rails应用程序。rails应用程序使用Mongoid存储mongodb数据。当我通过web表单创建mongo记录时,它们的ID类型为string。当我使用mongoimport将记录导入到mongo中时,它们具有类型为BSON::ObjectId的ID。
rails应用程序期望mongo记录is是字符串,因此当我导入数据时,它会导致应用程序失败,因为当它查找记录时,它会报错( can't convert type BSON::ObjectId to string
在这里,我在很多层面上都感到困惑。BSON::ObjectId是mongo中ID的默认类型,所以
我想创建2个识别字段使用C# mongo驱动程序。第一个id字段是默认的mongo id,第二个字段是每个记录/文档的唯一整数id。
public class Book
{
[BsonId]
public ObjectId Id { get; set; }
[BsonId(IdGenerator = typeof(IdGenerator<Book>))]
public int BookId { get; set; }
public string Name { get; set; }
}
有可能做这样的事情吗?