我是node.js
和mongodb
的初学者。所以如果我的问题看起来很愚蠢,请原谅我。基本上我试图通过{使用{来执行以下操作{1}}和where
运算符可以从this question获得一些精确的结果,但它显示错误。
代码:
or
错误:
//here "data" is the emitted socket object from client side
var string = data.search.replace(/[\/\\#@+()$~%'":*?<>{}]/g, '')
var regex = new RegExp(["^", string].join(""), "i");
db.collection("user_information").find()
.where('_id').ne(data.userId)
.or([
{email: regex},
{fullname:regex}
])
.select('fullname email')
.exec(function(err, res){
console.log(res)
})
答案 0 :(得分:2)
您链接的问题涉及使用Mongoose ORM library,而不是Node的标准MongoDB驱动程序。前者构建在后者之上,并公开了更高级别的API。如果您想使用其他问题的代码,则需要安装并导入Mongoose。
或者,如果您想继续单独使用Node驱动程序,可以通过传递query object作为find
的第一个参数来执行查询 - 例如,您的第一个'where'看起来像这样:
db.collection("user_information").find({
_id: { $ne: data.userId }
})
我建议您阅读MongoDB itself和Node driver的文档以获取更多信息。