发布于 2014-09-25 01:15:56
在mgo中没有新/旧记录的概念。对于驱动程序来说,它只是你在内存中的数据。您可以在内存值、多个内存值中加载数据库中的数据,还可以将其保存回相同的id或不同的id,甚至可以在不同的会话下将其保存到完全不同的数据库中。驱动程序将只做它被要求做的事情。
应用程序可以通过在结构中添加一个字段并对其进行适当设置来实现自己的新/旧概念。取消导出该字段或使用字段标签bson:"-"防止mgo存储该字段。
如果应用程序总是依赖于数据库来分配文档id,那么应用程序可以检查id字段来确定文档是新的还是旧的。
发布于 2014-09-25 00:33:56
显然不是。
看一下code of mgo,与ActiveRecord::Persistence.new_record?文档相比,我没有看到任何"*saved*“函数:
如果此对象尚未保存,则
返回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()都不会产生任何相关的结果(主要是IsMaster或IsDup)
https://stackoverflow.com/questions/26021852
复制相似问题