Commit e93fa1e

Richard Luby <richluby@gmail.com>
2017-01-26 10:50:02
db now queries for categories using regex
1 parent 782867b
Changed files (2)
db.go
@@ -43,13 +43,18 @@ func InitDBSession() (*mgo.Session, error) {
 }
 
 // returnForQuery
-func returnForQuery(selectedCategories []string, numQuestions int) ([]Record, error) {
+func returnForQuery(selectedCategories []string) ([]Record, error) {
+	if DBsession == nil {
+		if _, err := InitDBSession(); err != nil {
+			return nil, err
+		}
+	}
 	collection := DBsession.DB(DB_config.DB_name).C(DB_config.CollectionName)
 	var results []Record
 	var collector []Record
 	var err error
 	for _, category := range selectedCategories {
-		err = collection.Find(bson.M{"path": category}).All(&collector)
+		err = collection.Find(bson.M{"path": bson.M{"$regex": category}}).All(&collector)
 		if err != nil {
 			return nil, err
 		} else {
db_test.go
@@ -33,7 +33,7 @@ func TestAddAndRetriveForDB(t *testing.T) {
 			t.FailNow()
 		}
 	}
-	results, err := returnForQuery([]string{"linux:file:thing"}, 1)
+	results, err := returnForQuery([]string{"linux:file:thing"})
 	if err != nil {
 		t.Errorf("Error for returning initial query: %+v", err)
 	}
@@ -43,7 +43,7 @@ func TestAddAndRetriveForDB(t *testing.T) {
 	if results[0] != recordTest {
 		t.Errorf("Unexpected result: %+v", results[0])
 	}
-	results, err = returnForQuery([]string{"linux:networking:test"}, 2)
+	results, err = returnForQuery([]string{"linux:networking:test"})
 	if err != nil {
 		t.Errorf("Error for returning test query: %+v", err)
 	}