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