我试图查询mongo,并根据特定字段(例如用户名或国家/地区)查询,它只返回该匹配项。我可以在get请求中获取我想要的数据,但每当我尝试按特定字段查询时它就会中断。它将返回此错误。
我的查询字符串:localhost:4002 / users?firstName = Mark
错误:MongoError:无法规范化查询:BadValue不支持的投影选项:firstName:{$ match:" Mark" }
app.get('/users', (req,res) => {
co(function*(){
var dbSocial = yield MongoClient.connect(dbSocialUrl);
let query = {
firstName:1,
lastName:1,
createDT:1,
"_mailAddress.country":1,
ownerId:1,
userName:1
}
//
if (req.query.firstName) {
query["firstName"] = {
$match: req.query.firstName || '',
}
}
console.log('query',query);
//get users
var users = yield dbSocial
.collection('user')
.find({},(query))
.limit(100)
.toArray();
})
答案 0 :(得分:0)
问题在于我的查询对象。
let query ={}
作品
答案 1 :(得分:0)
$ match是一个聚合管道运算符,它接受指定查询条件的文档。它将对象作为查询。
{$ match:{<> }
您应该添加您想要匹配的字段,在您的情况下,名称。 所以建立像
这样的查询db.collection_name.aggregate({$匹配:{ '名称': '标记'}})