mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
扩展索引排序
This commit is contained in:
@@ -73,22 +73,27 @@ func (s *Session) NextSeq(db string, collection string, id interface{}) (int, er
|
|||||||
}
|
}
|
||||||
|
|
||||||
// indexKeys[索引][每个索引key字段]
|
// indexKeys[索引][每个索引key字段]
|
||||||
func (s *Session) EnsureIndex(db string, collection string, indexKeys [][]string, bBackground bool,sparse bool) error {
|
func (s *Session) EnsureIndex(db string, collection string, indexKeys [][]string, bBackground bool, sparse bool, asc bool) error {
|
||||||
return s.ensureIndex(db, collection, indexKeys, bBackground, false,sparse)
|
return s.ensureIndex(db, collection, indexKeys, bBackground, false, sparse, asc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// indexKeys[索引][每个索引key字段]
|
// indexKeys[索引][每个索引key字段]
|
||||||
func (s *Session) EnsureUniqueIndex(db string, collection string, indexKeys [][]string, bBackground bool,sparse bool) error {
|
func (s *Session) EnsureUniqueIndex(db string, collection string, indexKeys [][]string, bBackground bool, sparse bool, asc bool) error {
|
||||||
return s.ensureIndex(db, collection, indexKeys, bBackground, true,sparse)
|
return s.ensureIndex(db, collection, indexKeys, bBackground, true, sparse, asc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// keys[索引][每个索引key字段]
|
// keys[索引][每个索引key字段]
|
||||||
func (s *Session) ensureIndex(db string, collection string, indexKeys [][]string, bBackground bool, unique bool,sparse bool) error {
|
func (s *Session) ensureIndex(db string, collection string, indexKeys [][]string, bBackground bool, unique bool, sparse bool, asc bool) error {
|
||||||
var indexes []mongo.IndexModel
|
var indexes []mongo.IndexModel
|
||||||
for _, keys := range indexKeys {
|
for _, keys := range indexKeys {
|
||||||
keysDoc := bsonx.Doc{}
|
keysDoc := bsonx.Doc{}
|
||||||
for _, key := range keys {
|
for _, key := range keys {
|
||||||
|
if asc {
|
||||||
keysDoc = keysDoc.Append(key, bsonx.Int32(1))
|
keysDoc = keysDoc.Append(key, bsonx.Int32(1))
|
||||||
|
} else {
|
||||||
|
keysDoc = keysDoc.Append(key, bsonx.Int32(-1))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
options := options.Index().SetUnique(unique).SetBackground(bBackground)
|
options := options.Index().SetUnique(unique).SetBackground(bBackground)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ func (mp *MongoPersist) OnInit() error {
|
|||||||
keys = append(keys, "Customer", "Topic")
|
keys = append(keys, "Customer", "Topic")
|
||||||
IndexKey = append(IndexKey, keys)
|
IndexKey = append(IndexKey, keys)
|
||||||
s := mp.mongo.TakeSession()
|
s := mp.mongo.TakeSession()
|
||||||
if err := s.EnsureUniqueIndex(mp.dbName, CustomerCollectName, IndexKey, true, true); err != nil {
|
if err := s.EnsureUniqueIndex(mp.dbName, CustomerCollectName, IndexKey, true, true,true); err != nil {
|
||||||
log.SError("EnsureUniqueIndex is fail ", err.Error())
|
log.SError("EnsureUniqueIndex is fail ", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user