【发布时间】:2015-08-13 16:30:38
【问题描述】:
请问在模型 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);
});
我也尝试过使用 RegExp:
var regex = new RegExp('^((?!' + ID + ').)*$', "i");
User.find({id: regex},
function(error, users) {
console.log(users);
callback(error, users);
});
【问题讨论】:
-
不应该是
_id而不是id吗? -
您要查找的文档是什么样的? JohnnyHK 关于
_id的观点似乎是一个不错的选择,但是当我们看不到您要搜索的内容时,这很难提供帮助。 -
@JohnnyHK _id 的字符串等价在猫鼬模型中被公开为 id(虚拟字段)
-
@AaronDufour 搜索的内容并不重要。只是试图获取与动态传入的 ID(字符串)不匹配的所有记录(文档)
-
@czprobity 你不能查询像
id这样的虚拟字段,这就是为什么它需要_id。但是使用$ne是正确的,ID可以是一个字符串,因为 Mongoose 会根据架构将其转换为ObjectId。
标签: regex node.js mongodb mongoose objectid