0
query:=bson.M{"relationship.from": bson.RegEx{"\\d+8.*", ""}}

c.Find(query).All(&users)

above code returns empty set, but the collection looks like:

{"name" : "test","phone": "13xxxx" "relationship":{"from":1982, "to": 1998}}
{"name" : "test2", "phone": "15xxx","relationship":{"from":1981, "to": 1999}}

that will be ok if search phone key, and it is fails in mongodb console :

db.users.find({"relationship.from": /\d+8\d*/})

no matched result??

benyu
  • 121
  • 8

1 Answers1

0

A regular expression can only match strings, but the field value in these documents are numbers.

To match these, have a look at the comparison query operators:

http://docs.mongodb.org/manual/reference/operator/query-comparison/

Gustavo Niemeyer
  • 22,007
  • 5
  • 57
  • 46