使用Mongoose从mongoDB中选择,其中ObjectId与特定ID不相等

dc-*_*oxn 0 regex mongoose mongodb node.js objectid

请问如何使用模型ID与给定ID不匹配的mongoose从MongoDB中检索记录.模型设置正确.我不是Node.js,mongoDB,Mongoose的新手.

我尝试使用$ ne:

var ID = ....

User.find({id: {$ne: ID}},
function(error, users) {
  console.log(users);
  callback(error, count);
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用RegExp:

var regex = new RegExp('^((?!' + ID + ').)*$', "i");
User.find({id: regex},
function(error, users) {
  console.log(users);
  callback(error, users);
});
Run Code Online (Sandbox Code Playgroud)

小智 5

正如JohnnyHK和Aaron Dufour评论的那样,你需要使用_id而不是id.

此外,当您查询时,Mongo期望一个Object而不是String _id.

您可以要求本机mongodb驱动程序ObjectID并在您的代码中使用它,如下所示:

var ObjectID = require('mongodb').ObjectID;

_id = new ObjectID('stringId');

User.find({'_id': {$ne: _id}},
function(error, users) {
  console.log(users);
  callback(error, count);
});
Run Code Online (Sandbox Code Playgroud)

看到这个答案.