2013-08-27 105 views
2

我有Word模式,它包含一个嵌套的对象,如下所示。如果我想在xxx的“elementary_one_reading”中搜索单词,我可以简单地做db.words.find({"apperance.elementary_one_reading": xxx})按关键字在mongodb/mongoose中搜索

然而,我想知道如何在猫鼬中这样做,假设我想为密钥传递一个变量。特别是,我希望能有办法做到像下面这样的事情,但它不起作用。

function(key, value) { 
    Word.find({"appearance." + key: value}, function(err, results) { 
    } 

} 


{ "word" : "岁", "_id" : ObjectId("1"), "appearance" : { "elementary_one_reading" : [ 1 ] }} 
{ "word" : "女", "_id" : ObjectId("2"), "appearance" : { "elementary_one_reading" : [ 1 ] }} 
{ "word" : "我", "_id" : ObjectId("3"), "appearance" : { "elementary_two_reading" : [ 1, 8 ] }} 
{ "word" : "你", "_id" : ObjectId("4"), "appearance" : { "elementary_two_reading" : [ 1, 2 ] }} 

回答

0

我刚刚意识到解决这个问题的简单方法是通过使用查询。我可以轻松完成以下任务。

var field ='appearance.elementary_one_reading'; Word.find()。where(field,xxx).exec(callback);