我正在使用nodejs和mongodb。在mongo db中,有用户集合,其中属性是名称和状态。状态记录有'A','B','C'和'D'。我想在名称数组和状态中过滤记录,除了'A'。怎么做?
var nameArr = [];
nameArr.push('Jojo');
nameArr.push('Legend');
// The record return null when i added status: !'A'
db.collection('users').find({name: {$in: nameArr},{status: !'A'}}).toArray(function (resp) {
res.json({code: '00', content: resp});
});
用户架构
{
"_id": ObjectId("515fd5f42a84cb610eed23es"),
"name": "Jojo",
"status": "A"
}
{
"_id": ObjectId("584fd5f42a84cb610eed23ef"),
"name": "Legend",
"status": "C"
}
{
"_id": ObjectId("585fd5f42a84c1110eed23ef"),
"name": "Mark",
"status": "D"
}
{
"_id": ObjectId("585fd5ss42a84cb610eed23ee"),
"name": "Swish",
"status": "B"
}
预期输出
{
"_id": ObjectId("584fd5f42a84cb610eed23ef"),
"name": "Legend",
"status": "C"
}
答案 0 :(得分:1)
答案 1 :(得分:1)
你正在走上正轨,但是" !
"在MongoDb中不起作用。
您可以使用$ne
:
db.collection('users').find({name: {$in: nameArr},status: { $ne :'A'}}).toArray(function (resp) {
res.json({code: '00', content: resp});
});
$ ne是用于检查mongoDb中的Not Enquals to
的运算符。
如需了解更多信息,请浏览MongoDB $ne Documentation
希望这有帮助!