我只是不知道它为什么不起作用((val.instruments未定。
function getInstruments(callback) {
db.collection("settings", function(error, settings) {
settings.find({ "settings" : "settings" }, function (err, val) {
console.log('from getInstruments ' + val.instruments);
if (val.instruments==undefined) {
callback("");
} else {
callback(val.instruments);
}
});
});
}
方案:
{
"_id": {
"$oid": "508677a3e5089a6df291631a"
},
"settings": "settings",
"instruments": [
"1",
"2",
"3"
]
}
返回:
node app.js:
from getInstruments undefined
有什么建议吗?感谢。
UPD :修改后的代码:
function getInstruments(callback) {
db.collection("settings", function(error, settings) {
settings.find({ "settings" : "settings" }).toArray(function(err, docs) {
console.dir(docs.instruments);
});
});
}
结果:
[ { _id: 508677a3e5089a6df291631a,
settings: 'settings',
instruments: [ '1', '2', '3' ] } ]
更改为:
function getInstruments(callback) {
db.collection("settings", function(error, settings) {
settings.find({ "settings" : "settings" }).toArray(function(err, docs) {
console.dir(docs.instruments);
});
});
}
结果:
undefined
它怎么样?
答案 0 :(得分:0)
find返回一个数组。所以你应该检查val.length是否大于0,然后查看val [0] .instruments
答案 1 :(得分:0)
查看文档find section最后的示例。如果您在val.toArray()
的回调中运行find
,您应该能够遍历返回的文档并逐个处理它们。