猫鼬选择不工作?

时间:2014-02-08 19:23:46

标签: node.js mongoose

这是我的架构:

var countries = new Schema({
name:  String,
capital: String,
body:   String,
flag: {data: Buffer, contentType: String },
population: String,
currency: String
      });

我想选择字段名称和资本。

这是我的查询:

countries.find({}, 'name capital', { skip: rand, limit: 1}, function(err, result){

              if (err) return handleError(err);

              console.log('Country :' + result);
              callback(null, result);

            });

但结果打印整个文档。 result.name未定义。

我尝试了不同的语法,比如

 countries.find({}, {'name':1, 'capital':1}, ....

但没有选择。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

find()会返回一个结果数组,即使您将其限制为1也是如此。 这可能是您result.name undefined的原因。因此,要访问您的namecapital,您必须使用:

console.log("Country name:", result[0].name);
console.log("Country capital:", result[0].capital);

也许您想使用findOne(),它不会直接返回数组而是返回对象。

两种语法都应该有效,name capital{ name: 1, capital: 1 }