From inspection, the "info.birthnotes"
array may look like it has comma separated elements
"info.birthnotes" : [ "Los Angeles", "California", "USA" ]
yet it has a single string value "Los Angeles, California, USA"
which is comma separated:
"info.birthnotes" : [ "Los Angeles, California, USA" ]
You are currently querying it as if it is multi-valued with single sttring values as elements. You need to use a $regex
based query to return the documents whose "info.birthnotes"
array string contains "Lisbon"
as follows:
db.collection.find({ "info.birthnotes": { "$regex": /Lisbon/i } })
or if you are using a variable with the RegExp
constructor to create a regular expression object you can use in your query:
var query = "Lisbon";
var rgx = new RegExp(query, "i");
db.collection.find({"info.birthnotes": rgx})
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…