MongoDB MonkAPI 根据在数据库请求之外可用的查找结果设置变量
MongoDB MonkAPI setting a variable based on find result that is available outside the db request
我正在尝试根据在 Node JS 应用程序中通过 Monk API 在 MongoDB 上查找的结果设置一个变量(这是我第一次使用 MongoDB ).
这是我的代码示例;
var variableIWantToSet;
var collection = req.db.get('myCollection');
collection.find( { foo: 'bar' },{
fields : { myTargetField: 1, _id: 0},
limit : 1,
sort : {$natural : -1}
}
, function(err, doc) {
if (err) {
console.log(err);
}
variableIWantToSet = doc[0].myTargetField;
});
console.log(variableIWantToSet);
如果我 console.log(doc[0].myTargetField)
在函数中得到正确的值,但是 console.log(variableIWantToSet)
returns undefined
.
感谢帮助。谢谢。
console.log 在回调之外。所以它是 undefined
。放在回调中。
var collection = req.db.get('myCollection');
collection.find( { foo: 'bar' },{
fields : { myTargetField: 1, _id: 0},
limit : 1,
sort : {$natural : -1}
}
, function(err, doc) {
if (err) {
console.log(err);
}
var variableIWantToSet = doc[0].myTargetField;
console.log(variableIWantToSet);
});
为了更容易理解:
//The callback function will be call after the mongodb response right value.
var callback = function(err, doc) {
if (err) {
console.log(err);
}
variableIWantToSet = doc[0].myTargetField;
console.log(variableIWantToSet); // return doc[0].myTargetField;
};
var variableIWantToSet;
var collection = req.db.get('myCollection');
collection.find( { foo: 'bar' },{
fields : { myTargetField: 1, _id: 0},
limit : 1,
sort : {$natural : -1}
}
, callback);
console.log(variableIWantToSet); // return undefined;
如果不了解callback
,google它是异步编程的基础,这让javascript与众不同。
我正在尝试根据在 Node JS 应用程序中通过 Monk API 在 MongoDB 上查找的结果设置一个变量(这是我第一次使用 MongoDB ).
这是我的代码示例;
var variableIWantToSet;
var collection = req.db.get('myCollection');
collection.find( { foo: 'bar' },{
fields : { myTargetField: 1, _id: 0},
limit : 1,
sort : {$natural : -1}
}
, function(err, doc) {
if (err) {
console.log(err);
}
variableIWantToSet = doc[0].myTargetField;
});
console.log(variableIWantToSet);
如果我 console.log(doc[0].myTargetField)
在函数中得到正确的值,但是 console.log(variableIWantToSet)
returns undefined
.
感谢帮助。谢谢。
console.log 在回调之外。所以它是 undefined
。放在回调中。
var collection = req.db.get('myCollection');
collection.find( { foo: 'bar' },{
fields : { myTargetField: 1, _id: 0},
limit : 1,
sort : {$natural : -1}
}
, function(err, doc) {
if (err) {
console.log(err);
}
var variableIWantToSet = doc[0].myTargetField;
console.log(variableIWantToSet);
});
为了更容易理解:
//The callback function will be call after the mongodb response right value.
var callback = function(err, doc) {
if (err) {
console.log(err);
}
variableIWantToSet = doc[0].myTargetField;
console.log(variableIWantToSet); // return doc[0].myTargetField;
};
var variableIWantToSet;
var collection = req.db.get('myCollection');
collection.find( { foo: 'bar' },{
fields : { myTargetField: 1, _id: 0},
limit : 1,
sort : {$natural : -1}
}
, callback);
console.log(variableIWantToSet); // return undefined;
如果不了解callback
,google它是异步编程的基础,这让javascript与众不同。