summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShraya Ramani <shraya.ramani@10gen.com>2015-08-11 17:52:49 -0400
committerShraya Ramani <shraya.ramani@10gen.com>2015-08-17 14:41:18 -0400
commit4ae50163a8af7d52d0ce199003977443d70d8da3 (patch)
tree9ea713a52f1cd35b8bf75f17f00a53dd9af8cd15
parent7588eb887549bd5d2fc7bbc08f7c62d4b29b9d75 (diff)
downloadmongo-4ae50163a8af7d52d0ce199003977443d70d8da3.tar.gz
TOOLS-848 fix for exporting regexes
-rw-r--r--common/json/json_format.go8
-rw-r--r--test/qa-tests/jstests/import/import_types.js1
-rw-r--r--test/qa-tests/jstests/import/testdata/types.json3
3 files changed, 9 insertions, 3 deletions
diff --git a/common/json/json_format.go b/common/json/json_format.go
index b6abff535dd..4db0cacddfa 100644
--- a/common/json/json_format.go
+++ b/common/json/json_format.go
@@ -137,8 +137,12 @@ func (o ObjectId) MarshalJSON() ([]byte, error) {
}
func (r RegExp) MarshalJSON() ([]byte, error) {
- data := fmt.Sprintf(`{ "$regex": "%v", "$options": "%v" }`,
- r.Pattern, r.Options)
+ pattern, err := Marshal(r.Pattern)
+ if err != nil {
+ return nil, err
+ }
+ data := fmt.Sprintf(`{ "$regex": %v, "$options": "%v" }`,
+ string(pattern), r.Options)
return []byte(data), nil
}
diff --git a/test/qa-tests/jstests/import/import_types.js b/test/qa-tests/jstests/import/import_types.js
index d3a0b370eaf..e192ab9b52e 100644
--- a/test/qa-tests/jstests/import/import_types.js
+++ b/test/qa-tests/jstests/import/import_types.js
@@ -43,6 +43,7 @@
"number_long_type" :18,
"minkey_type" : -1,
"maxkey_type" : 127,
+ "regex_type" : 11,
};
diff --git a/test/qa-tests/jstests/import/testdata/types.json b/test/qa-tests/jstests/import/testdata/types.json
index 5975248b245..9a0cf0f3946 100644
--- a/test/qa-tests/jstests/import/testdata/types.json
+++ b/test/qa-tests/jstests/import/testdata/types.json
@@ -22,5 +22,6 @@
"int64_negative_type" : -214748364765,
"number_long_type" : NumberLong(5000),
"minkey_type" : { "$minKey" : 1 },
- "maxkey_type" : { "$maxKey" : 1 }
+ "maxkey_type" : { "$maxKey" : 1 },
+ "regex_type" : { "$regex" : "\\.", "$options" : "" } }
}