mongoDb找到fieldname正则表达式

时间:2014-05-25 10:52:11

标签: mongodb

这是我的文件:

> db.a.find({})
{  "a" : 1, "b" : { "23" : "c", "24" : "d" } }
{  "a" : 2, "b" : { "25" : "e", "26" : "c" } }

如果我找到了

> db.a.find({'b.23':'c'})

我得到了文件

但在我的情况下,我手头并不知道钥匙,我想找到所有钥匙,如果它有价值的话,那就是' c' :

> db.a.find({'b.*':'c'})

这就行了!

1 个答案:

答案 0 :(得分:1)

非常可怕的解决方案因为我讨厌发布基本上需要使用$where JavaScript执行的内容但是:

db.docs.find(function(){
    for ( var k in this.b ) {
        if ( this.b[k] == "c" )
            return true;
    }
})

实际上会看到两个文档都包含一些与您要查找的值匹配的键。

这里直接使用function()是一个隐含的"使用$where运算符。由于文档中指定的原因,我真的不喜欢它,但如果它是你需要的,那么它就是你需要的。