0

不确定 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}
}

它实际上是一个键/值对,其中模式是键,动作是值,

现在说,当我使用包含模式以及其他一些值(未知且不相关)的字符串进行搜索时,我想检索此值/文档

例如我上面应该匹配的搜索字符串是:

query = {"a": 1, "b" : 2, "c" : 3, "d" : 4, "e" : 5 }

所以这中间部分匹配模式值,但我不知道我可以删除哪些值以获得完全匹配(例如 a & e)

该应用程序是用 Python 编写的,因为我目前正在 Mongo 中尝试这个,但很高兴探索任何其他解决方案。

4

1 回答 1

0

关于我能想到做你想做的事情的唯一方法是使查询成为一系列 OR 选项,如下所示:

db.foo.find( { $or : [ { "a" : 1 } , { "b" : 2 }, { "c" : 3 }, { "d" : 4 }, { "e" : 5 } ] } )

这应该有效,因为看起来您实际上是在“模式”节点的任何部分中寻找这些值中的任何一个。

于 2012-08-21T15:21:24.303 回答