不确定mongo是否是此处的最佳解决方案,或者甚至是否可行:
我有一份文件:
{
u'action': [
{
u'url': u'http://foo.com',
u'payload': {
u'action': u'EndCall'
},
u'timer': 0
},
{
u'url': u'http://foo.com',
u'payload': {
u'action': u'EndCall'
},
u'timer': 0
}
],
u'pattern': {u'c': 3, u'b': 2, u'd': 4}
}
它有效地是一个键/值对,其中pattern是关键,action是值,
现在说当我使用包含模式的字符串以及其他一些值(未知且无关紧要)进行搜索时,我想要检索此值/文档
例如,我上面应该匹配的搜索字符串是:
query = {"a": 1, "b" : 2, "c" : 3, "d" : 4, "e" : 5 }
所以这个中间部分与模式值匹配,但我不知道我可以删除哪些值来获得完全匹配(例如a& e)
该应用程序是用Python编写的,因为我目前正在Mongo中尝试这个,但很高兴能够探索任何其他解决方案。
答案 0 :(得分:0)
关于我能想到的唯一方法来做你想做的事情,使查询成为一系列OR选项,如下所示:
db.foo.find( { $or : [ { "a" : 1 } , { "b" : 2 }, { "c" : 3 }, { "d" : 4 }, { "e" : 5 } ] } )
这应该有效,因为看起来你实际上是在“模式”节点的任何部分寻找这些值中的任何一个。