首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go mgo新记录?

Go mgo新记录?
EN

Stack Overflow用户
提问于 2014-09-25 00:20:15
回答 2查看 136关注 0票数 2

是否可以使用mgo检测我正在处理的是新记录还是旧记录

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

object.new_record?

EN

回答 2

Stack Overflow用户

发布于 2014-09-25 01:15:56

在mgo中没有新/旧记录的概念。对于驱动程序来说,它只是你在内存中的数据。您可以在内存值、多个内存值中加载数据库中的数据,还可以将其保存回相同的id或不同的id,甚至可以在不同的会话下将其保存到完全不同的数据库中。驱动程序将只做它被要求做的事情。

应用程序可以通过在结构中添加一个字段并对其进行适当设置来实现自己的新/旧概念。取消导出该字段或使用字段标签bson:"-"防止mgo存储该字段。

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

票数 1
EN

Stack Overflow用户

发布于 2014-09-25 00:33:56

显然不是。

看一下code of mgo,与ActiveRecord::Persistence.new_record?文档相比,我没有看到任何"*saved*“函数:

如果此对象尚未保存,则

返回true -即数据存储中还不存在该对象的记录;否则返回false。

我在mgo中看到了

代码语言:javascript
复制
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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26021852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档