去mgo新纪录?

时间:2014-09-24 16:20:15

标签: mongodb go mgo

是否可以使用mgo检测我是使用新记录还是旧记录?

我的意思的一个例子是在Rails ActiveRecord中实现的:

object.new_record?

2 个答案:

答案 0 :(得分:1)

mgo没有新/旧记录的概念。就驱动程序而言,它只是内存中的数据。您可以将数据库中的数据加载到内存中的值中,存储在多个内存中,然后您可以在相同的ID或不同的ID下将其保存回来,甚至可以将其保存到完全不同的数据库中。不同的会议。司机只会按照要求做的事情。

应用程序可以通过向结构添加字段并根据需要进行设置来实现自己的new / old概念。使字段未导出或使用字段标记bson:"-"来阻止mgo存储字段。

如果应用程序总是依赖数据库来分配文档ID,那么应用程序可以检查id字段以确定文档是新的还是旧的。

答案 1 :(得分:0)

显然不是。

查看code of mgo,我没有看到任何" *saved*"功能,与ActiveRecord::Persistence.new_record? doc:

相比
  

如果尚未保存此对象,则返回true - 也就是说,该对象的记录尚未存在于数据存储中;否则,返回false。

我在mgo中看到了:

C:\Users\vonc\prog\git\mgo>gi saved
gridfs.go:360:// SetChunkSize sets size of saved chunks.  Once the file is written to, it
gridfs.go:361:// will be split in blocks of that size and each block saved into an
txn/txn.go:360:// Saved documents are in the format:

寻找任何IsXxxx()并不会产生任何相关内容(主要是IsMasterIsDup