我的收藏(消息)有一个字段(PROGRAM),当我尝试打印它时使用obj [i] .PROGRAM,它返回undefined。
var messages = db.model('messages', mongoose.Schema({}), 'messages');
messages.find({}).limit(10).exec(function(err, obj) {
console.log(obj);
for(var i=0; i<obj.length; i++) {
console.log(obj[i].PROGRAM); //why here return undefine ?
}
});
结果:
[ { PROGRAM: 'sudo' } ]
undefined
答案 0 :(得分:0)
您想要返回一个对象吗?如果是这样,以下代码应符合您的要求:
messages.findOne({"Programm" : "sudo}, function(error, obj) {
// ...
});
但是,如果要查询消息集合中的所有对象,可以使用:
messages.find({}, function(error, obj) {
// ...
obj.forEach(function(o) {
console.log(o.property);
});
});
答案 1 :(得分:0)
使用Mongoose时,您需要定义Schema,然后创建模型。如果您要使用现有集合,则需要使用Schema定义对结构建模。例如,如果您在名为PROGRAM
的文档中有一个字段,且字段为String
:
var Message = mongoose.model('messages', mongoose.Schema({
PROGRAM : String
}), 'messages');
您稍后可以参考它:
var msg = new Message();
msg.PROGRAM = 'npm';
if (msg.PROGRAM === 'node') {
// etc... do whatever you'd want.
}