如何使用变量替换运行mongodb查询

时间:2014-09-23 16:35:02

标签: mongodb meteor

我在Mongo有这个文件

{
    "_id" : "hxQee6xCQSD9C9Qok",
    "bank_account" : {
        "12345" : {
            "account" : "12345",
            "type" : "bank_account"
        }
    }
}

我想对mongoDB运行查询,我知道我可以这样做

db.donate.find({'bank_account.12345.account': '12345'})

但我想做的是使用变量来搜索帐号,' 12345' 所以我试过这个

var bankNumber = '12345';
var accountLookup = {bank_account[bankNumber]account: bankNumber};
var obj = db.donate.findOne(accountLookup);

我收到此错误

Error: Line 2: Unexpected token [

如果我用引号括起来它也不起作用。如何格式化我的查询以查找对象' 12345'或者通过帐户属性' 12345'?

1 个答案:

答案 0 :(得分:1)

以编程方式汇编查询密钥:

var bankNumber = '12345';
var accountLookup = {};
accountLookup['bank_account.' + bankNumber + '.account'] = bankNumber;
var obj = db.donate.findOne(accountLookup);