Node.js 猫鼬选择不工作?

Node.js 猫鼬选择不工作?,node.js,mongoose,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, li

这里是我的模式:

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}, ....
但没有选择任何内容

有什么想法吗?

find()
返回一个结果数组,即使您将其限制为1。 这可能就是您的
结果.name
未定义的原因。因此,要访问您的
姓名
大写字母
,您必须使用:

console.log("Country name:", result[0].name);
console.log("Country capital:", result[0].capital);
也许您想使用
findOne()
,它不返回数组,而是直接返回对象


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

我的回答解决了你的问题吗?请告诉我其他情况。如果有,请随意接受。这对你、我和社区其他人都有帮助:)