示例#1
0
文件: place.go 项目: jtprog/geotrack
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
}
示例#2
0
文件: db.go 项目: jtprog/geotrack
// 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
}
示例#3
0
文件: db.go 项目: jtprog/geotrack
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
}
示例#4
0
文件: db.go 项目: jtprog/geotrack
// 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
}
示例#5
0
文件: cache.go 项目: jtprog/geotrack
// 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
}