使用mongodb $ in运算符来搜索数组

时间:2016-04-14 19:45:00

标签: arrays mongodb operators

var foo = [ [ 14, 31, 55, 56, 60, 19 ], [30, 32, 33, 50, 64, 6 ], [9, 15, 22, 35, 48, 3] ];

var bar = await Model.find({
    numbers: { $in: foo }
  });

console.log(bar);

当我尝试运行上面的代码时,我得到以下错误。该模型是一个猫鼬模型,查询在使用robomongo的原始mongodb查询中运行没有任何问题。

{ [CastError: Cast to number failed for value "14,31,55,56,60,19" at path "numbers"]
  message: 'Cast to number failed for value "14,31,55,56,60,19" at path "numbers"',
  name: 'CastError',
  kind: 'number',
  value: [ 14, 31, 55, 56, 60, 19 ],
  path: 'numbers',
  reason: undefined }

1 个答案:

答案 0 :(得分:1)

你正在将foo传递给Mongoose,这是一个期望Number值的属性的Mongoose数组,因此Mongoose会在它做的时候向你抱怨'通过说数组不是数字进行验证。