在 MongoDb 中查询嵌套数组
Posted
技术标签:
【中文标题】在 MongoDb 中查询嵌套数组【英文标题】:Query a nested array in MongoDb 【发布时间】:2011-07-12 03:52:13 【问题描述】:我想通过嵌套数组中存在的字符串来检索文档。例如,数据(表示句子的依赖解析)如下所示:
'tuples': [['xcomp', 'multiply', 'using'],
['det', 'method', 'the'],
['nn', 'method', 'foil'],
['dobj', 'using', 'method']]
我找到的最接近的解决方案假定['nn', ...]
是tuples
list-of-lists 的第二个位置:
db.c.find('tuples.2.0' : 'nn')
有没有办法放松固定位置?元组(不是它们的内容)可以按任何顺序排列。
其次,能够检索具有['nn', 'method', X]
的文档真的很棒,这意味着它们的依赖解析中的名词“方法”。
谢谢!
【问题讨论】:
【参考方案1】:知道了!
db.c.find('tuples' : $elemMatch : $all : ['nn'])
db.c.find('tuples' : $elemMatch : $all : ['nn','method'])
【讨论】:
即使你知道'nn'在第三行,但不知道在什么位置,你仍然需要$all。根据 find 的文档,您不应该这样做。在 mongo shell 中试试这个:db.nested.insert('level1': 'level2': [['item00', 'item01'], ['item10', 'item11']])。那么,db.nested.findOne('level1.level2.0': 'item00') 为什么?以上是关于在 MongoDb 中查询嵌套数组的主要内容,如果未能解决你的问题,请参考以下文章