繁体   English   中英

嵌套字段中的Mongo查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM