在mgo insert()之后立即在mongodb中获取文档id的最佳方法
我的代码是go,使用mgo。 我需要创建一个文档并返回新创建文档的id。只有插入成功时,才能将id返回给最终客户端 这里最好的方法是什么 在insert()之后按字段搜索文档并不总是有效: 如果我采取先插入然后按唯一字段的值搜索文档的方法,则插入后的搜索不会返回任何内容。 您可能会问,为什么不将此唯一字段用作ID。在这种情况下,选择不将此字段的值用作“\u ID”。搜索或返回文档的问题可能是由于写入/插入和索引延迟造成的 以下是我遇到的一些方法 通过bson.NewObjectId()生成id,并将其与Insert()一起使用。然后查询数据以确保它在那里。在mgo insert()之后立即在mongodb中获取文档id的最佳方法,mongodb,mgo,Mongodb,Mgo,我的代码是go,使用mgo。 我需要创建一个文档并返回新创建文档的id。只有插入成功时,才能将id返回给最终客户端 这里最好的方法是什么 在insert()之后按字段搜索文档并不总是有效: 如果我采取先插入然后按唯一字段的值搜索文档的方法,则插入后的搜索不会返回任何内容。 您可能会问,为什么不将此唯一字段用作ID。在这种情况下,选择不将此字段的值用作“\u ID”。搜索或返回文档的问题可能是由于写入/插入和索引延迟造成的 以下是我遇到的一些方法 通过bson.NewObjectId()生成id,
- 然而,这里的查询是否与我前面提到的“插入后查询”方法中的查询不同?换句话说,此查询是否存在基于最近的插入操作(从某些缓存)返回数据而不是通过索引从磁盘检查数据的风险
- 此外,在分布式设置中,可能存在此ID容易发生冲突的边缘情况?换句话说,bson.NewObjectId()返回的值的唯一性有多可靠?我是否应该按此ID执行搜索以确保此ID未被使用
- 我是否可以仅对此插入使用SafeMode,而不是在连接级别设置它