我正在使用Mongoose.js与我的Mongo数据库进行交互。此功能会搜索我的Location
名称,并应将not found
记录到控制台而不是found
,因为我没有Location
名称为!@£
1}}。
Location.find({name: "!@£"}, function(err, obj) {
console.log(obj);
if (!err) {
console.log("found");
} else {
console.log("not found");
}
});
这是登出我的控制台的原因:
[]
found
预期的行为应该是将not found
记录到控制台。这是Location
模型数据的转储:
[
{
"_id":"5384c421af3de75252522aa2",
"name":"London, UK",
"lat":51.508515,
"lng":-0.12548719999995228,
"__v":0,
"modified":"2014-05-27T16:58:09.546Z",
"search_count":1
},
{
"_id":"5384c766af3de75252522ab4",
"name":"Paris, France",
"lat":48.856614,
"lng":2.3522219000000177,
"__v":0,
"modified":"2014-05-27T17:12:06.990Z",
"search_count":1
},
{
"_id":"53851a213a33fe392b758046",
"name":"Zagreb, Croatia",
"lat":45.8150108,
"lng":15.981919000000062,
"__v":0,
"modified":"2014-05-27T23:05:05.306Z",
"search_count":1
}
]
答案 0 :(得分:1)
回调接口语义不是您的想法。
err
表示由于DB无法访问等错误,查询完全失败。关于文件是否匹配没有任何意义obj
是一系列结果,您应将其命名为“位置”恕我直言以保持清晰。如果没有文档与查询匹配,则此数组将为空。如果有些匹配,它们将在数组中。所以总共需要考虑3个州:错误,没有匹配的成功,有些匹配的成功。