gpt4 book ai didi

javascript - 将 Mongo ID 转换为字符串进行比较

转载 作者:行者123 更新时间:2023-12-01 02:22:16 24 4
gpt4 key购买 nike

我有一个搜索功能,可以根据用户对各种过滤器的输入从我的 mongoDB 返回过滤后的数据。因此,例如我可以这样做并且它有效:

if (lastName) {
let arrlastName = [];
arrlastName = lastName.split(",");
_.each(arrlastName, (l, key, c) => {
arrlastName[key] = new RegExp(arrlastName[key], "i");
});
search['name.last'] = { $in: arrlastName };
}

上面返回一个过滤数据集,其中结果与用户在逗号分隔列表中传入的任何内容相匹配。

但是,在将用户输入的值与 mongo 数据库中的 _id 值进行比较时,我遇到了挑战。当然,我在这里检查的 _id 不是一个字符串,而是一个 mongo objectId —— 据我所知,这就是问题所在。因此,我试图弄清楚如何转换输入或 _id 或两者,以进行有效的比较。这是最初的代码:

if (person) search['_id'] = person;

这不起作用,因为这里 person 的值是一个字符串,而 _id 不是——正如我所说,_id > 是一个 mongo objectId。那么我该如何进行类型转换来处理此检查呢?

我尝试了这个,但它会导致错误:

if (person) search['_id'].toString() = person;

这种比较的语法是什么样的?

最佳答案

在 mongoDB 中,您可以使用ObjectId.valueOf()

From the documentation

ObjectId("507c7f79bcf86cd7994f6c0e").valueOf()

将返回以下字符串:

507c7f79bcf86cd7994f6c0e

关于javascript - 将 Mongo ID 转换为字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49118241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com