本文整理匯總了Golang中github.com/rafaeljusto/shelter/model.Domain.Id方法的典型用法代碼示例。如果您正苦於以下問題:Golang Domain.Id方法的具體用法?Golang Domain.Id怎麽用?Golang Domain.Id使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/rafaeljusto/shelter/model.Domain
的用法示例。
在下文中一共展示了Domain.Id方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Save
// Save the domain object in the database and by consequence will also save the
// nameservers and ds set. On creation the domain object is going to receive the id that
// refers to the entry in the database
func (dao DomainDAO) Save(domain *model.Domain) error {
// Check if the programmer forgot to set the database in DomainDAO object
if dao.Database == nil {
return ErrDomainDAOUndefinedDatabase
}
// When creating a new domain object, the id will be probably nil (or kind of new
// according to bson.ObjectId), so we must initialize it
if len(domain.Id.Hex()) == 0 {
domain.Id = bson.NewObjectId()
}
// Every time we modified a domain object we increase the revision counter to identify
// changes in high level structures. Maybe a better approach would be doing this on the
// MongoDB server side, check out the link http://docs.mongodb.org/manual/tutorial
// /optimize-query-performance-with-indexes-and-projections/ - Use the Increment
// Operator to Perform Operations Server-Side
domain.Revision += 1
// Store the last time that the object was modified
domain.LastModifiedAt = time.Now().UTC()
// Upsert try to update the collection entry if exists, if not, it creates a new entry.
// For all the domain objects we are going to use the collection "domain". We also avoid
// concurency adding the revision as a paremeter for updating the entry
_, err := dao.Database.C(domainDAOCollection).Upsert(bson.M{
"_id": domain.Id,
"revision": domain.Revision - 1,
}, domain)
return err
}