我有一个DB,其中包含嵌套字段的记录,如:
"requestParams" : { "query" : [ "tv9" ] }
我使用以下查询来获取这些类型的记录。然而,我正在寻找一个更一般的情况,其中字段查询匹配/ tv9 /其中包括tv9作为任何搜索的一部分。喜欢它也应该返回livetv9,movietv9等。以下查询似乎不起作用:
db.requestLog.findOne({url : /search.json/, requestParams: {$elemMatch: {query: /tv9/}}})
答案 0 :(得分:1)
db.requestLog.findOne({url : /search.json/, 'requestParams.query': /tv9/})
示例:
mongos> db.test.save({r:{q:["tv9"]}})
mongos> db.test.save({r:{q:["tv"]}})
mongos> db.test.save({r:{q:["ltv9l"]}})
mongos> db.test.find({'r.q':/tv9/})
{ "_id" : ObjectId("4f5095d4ec991a74c16ba862"), "r" : { "q" : [ "tv9" ] } }
{ "_id" : ObjectId("4f5095deec991a74c16ba864"), "r" : { "q" : [ "ltv9l" ] } }