Javascript mongodb-nin&;数组上的正则表达式

Javascript mongodb-nin&;数组上的正则表达式,javascript,mongodb,Javascript,Mongodb,我有两个集合,我正在尝试从Coll\u A获取所有记录,其中Coll\u B中不存在某个字段(Field1) 我遇到的问题是Coll_A中的Field1包含一个字符串值,它在末尾用空格填充到一定长度,但在另一个集合中没有这种填充 因此,对于下面的查询,vals数组具有未填充的记录,因此当我使用db.Coll\u A.find时,它返回不正确的结果 vals = db.Coll_B.find({}, {"Field1" : 1, _id: 0})

我有两个集合,我正在尝试从
Coll\u A
获取所有记录,其中
Coll\u B
中不存在某个字段(
Field1

我遇到的问题是
Coll_A
中的
Field1
包含一个字符串值,它在末尾用空格填充到一定长度,但在另一个集合中没有这种填充

因此,对于下面的查询,
vals
数组具有未填充的记录,因此当我使用
db.Coll\u 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
查找忽略空白的代码,但我不确定这里如何使用。任何帮助都将不胜感激。谢谢。

我建议修复集合中不一致的数据。用修剪字段周围的空白来更新所有记录

如果出于某种原因您不能或不想执行此操作,则可以使用
forEach
并手动执行检查

var results = [];
db.Coll_A.find({}).forEach(function(row){
   if(row.Field1.trim().indexOf(vals) === -1){
     results.push(row);
   }
});

我建议修复集合中不一致的数据。用修剪字段周围的空白来更新所有记录

如果出于某种原因您不能或不想执行此操作,则可以使用
forEach
并手动执行检查

var results = [];
db.Coll_A.find({}).forEach(function(row){
   if(row.Field1.trim().indexOf(vals) === -1){
     results.push(row);
   }
});

只需将返回值修改为
正则表达式的
数组
,并在
$nin
运算符中使用即可

代码:


不能在或
$in
运算符中使用运算符。

只需将返回值修改为
正则表达式的
数组
,并在
$nin
运算符中使用即可

代码:


您不能在运算符中使用运算符,也不能在运算符中使用运算符。

谢谢!我不知道我可以修改regex数组的返回。这对我来说非常有效。谢谢!我不知道我可以修改regex数组的返回。这对我来说非常有效。谢谢。我最终使用了下面的建议,但很高兴有这样的选项供将来使用,谢谢。我最终使用了下面的建议,但很高兴有这样的选项供将来使用,