gpt4 book ai didi

javascript - mongodb - 数组上的 nin 和正则表达式

转载 作者:行者123 更新时间:2023-11-28 06:35:05 24 4
gpt4 key购买 nike

我有 2 个集合,我正在尝试从 Coll_A 获取所有记录其中 Field1 中不存在某个字段 ( Coll_B ) .

我遇到的问题是这个Field1Coll_A包含一个字符串值,在末尾用空格填充达到一定长度,但其他集合中不存在此填充。

因此,对于以下查询,vals数组包含未填充的记录,因此当我使用 db.Coll_A.find 时,它返回不正确的结果。

vals = db.Coll_B.find({}, 
{"Field1" : 1, _id: 0})
.map(function(a){
return a.Field1;
});
db.Coll_A.find({ "Field1": { $nin: vals }});

我该如何解决这个问题?我使用 regex 进行查找用于忽略空格,但我不确定如何在这里使用它。任何帮助将不胜感激。谢谢。

最佳答案

您可以简单地将返回值修改为正则表达式数组,并在您的$nin运算符中使用它。

代码:

var exp = db.Coll_B.find({}, {"Field1" : 1, _id: 0}).map(function(a){
return new RegExp(a.Field1+"\\s*$");
});
db.coll_A.find({"Field1":{$nin:exp}});

您不能使用$regex $nin 内的运算符或 $in 运算符。

关于javascript - mongodb - 数组上的 nin 和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364696/

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