2014-09-23 103 views
0

运行的MongoDB查询我有这个文件中蒙戈如何与变量替换

{ 
    "_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'来格式化查询来查找?

+0

“BANK_ACCOUNT [bankNumber]帐户” 是一个语法错误,你尝试过BANK_ACCOUNT [bankNumber] .account? – 2014-09-23 16:56:46

回答

1

编程组装您的查询键:

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

谢谢,那正是我所需要的。 – JoshJoe 2014-09-23 18:46:40