[英]Mongo query in nested fields
我有一個數據庫,其中包含帶有嵌套字段的記錄,例如:
"requestParams" : { "query" : [ "tv9" ] }
我正在使用以下查詢來獲取此類記錄。 但是,我正在尋找一種更一般的情況,其中字段查詢與/ tv9 /匹配,其中/ tv9 /包括tv9作為任何搜索的一部分。 像它還應該返回livetv9,movietv9等。以下查詢似乎不起作用:
db.requestLog.findOne({url : /search.json/, requestParams: {$elemMatch: {query: /tv9/}}})
$ elemMatch用於匹配數組中的部分文檔元素。 由於要直接匹配字符串,因此不適合使用此運算符。 使用它代替:
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" ] } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.