我正在尝试注入NoSql数据库。
我在网上搜索试图了解要做什么,以便注入一个用HTML编写的简单表单和node.js中的服务器端。 所以通常当我需要从mLab中的数据库中获取数据时我只使用查询mycollection.find({name:req.body.name}),但据我所知(如果我错了请纠正我,因为我'我不确定)我需要使用where函数,因为使用这个函数很容易注入我的数据库。
这就是我做的事情
exports.getDetails = function(req, res){
var myuser = req.body.user;
login.findOne({ $where : {name: myuser} }, function(err, docs){
console.log(docs);
});
}
但功能在哪里不起作用..我做错了什么?
答案 0 :(得分:0)
使用以下代码段。这将有效。
exports.getDetails = function(req, res){
var myuser = req.body.user;
login.find({ $where : {name: myuser}}).toArray(function(err, docs){
console.log(docs);
});
}
答案 1 :(得分:0)
来自$where的官方Mongo文档:
使用$ where运算符将包含JavaScript表达式或完整JavaScript函数的字符串传递给查询系统。 $ where提供了更大的灵活性,但要求数据库处理集合中每个文档的JavaScript表达式或函数。使用this或obj。
在JavaScript表达式或函数中引用该文档
在您的代码中,您发送的对象是错误的(您只能将Javascript表达式作为字符串或函数发送)。根据你的例子,我认为你不需要$ where。如果你想得到一个用户,就这样做:
login.findOne({name: 'enterNameHere'},function(err, user){
console.log(user);
});
您可以在文档(页面底部)
中找到$ where的示例