func InitDB(mdb *mongo.DB) (db *DB, err error) { db = &DB{mdb} coll := mdb.GetCollection(CollectionName) defer mdb.FreeCollection(coll) if err = coll.EnsureIndexKey("groupid", "$2dsphere:geo"); err != nil { return } return }
// InitDB возвращает инициализированный объект для работы с хранилищем LBS данных. func InitDB(mdb *mongo.DB) (db *DB, err error) { db = &DB{mdb} coll := mdb.GetCollection(CollectionName) err = coll.EnsureIndex(mgo.Index{ Key: []string{"radio", "mcc", "mnc", "lac", "cell"}, Unique: true, DropDups: true, }) // if err = coll.EnsureIndexKey("point", "$2dsphere:geo"); err != nil { // return // } mdb.FreeCollection(coll) return }
func InitDB(mdb *mongo.DB) (db *DB, err error) { db = &DB{mdb} coll := mdb.GetCollection(CollectionName) defer mdb.FreeCollection(coll) if err = coll.EnsureIndex(mgo.Index{ Key: []string{"time"}, ExpireAfter: ExpireAfter, }); err != nil { return } if err = coll.EnsureIndexKey("groupid", "deviceid", "-_id"); err != nil { return } return }
// InitDB возваращает инициализированный объект для работы с хранилищем информации // о зарегистрированных пользователях системы. func InitDB(mdb *mongo.DB) (db *DB, err error) { db = &DB{mdb} coll := mdb.GetCollection(CollectionName) err = coll.EnsureIndex(mgo.Index{ Key: []string{"login"}, Unique: true, }) if err != nil { return } err = coll.EnsureIndexKey("groupid") if err != nil { return } mdb.FreeCollection(coll) return }
// InitCache возвращает инициализированное хранилище кеша для данных с эфемеридами. // В процессе инициализации проверяет наличие необходимых индексов и создает, в случае их // отсутствия. Если индексы уже существуют, но отличаются от тех, что задаются по умолчанию, // то возвращает ошибку. func InitCache(mdb *mongo.DB, token string) (cache *Cache, err error) { cache = &Cache{ DB: mdb, client: NewClient(token), } coll := mdb.GetCollection(CollectionName) defer mdb.FreeCollection(coll) if err = coll.EnsureIndexKey("profile", "$2dsphere:location"); err != nil { return } if err = coll.EnsureIndex(mgo.Index{ Key: []string{"time"}, ExpireAfter: ExpireAfter, }); err != nil { return } return }