【问题标题】:Mongoose sample operator not working猫鼬样本操作员不工作
【发布时间】:2019-04-11 21:13:55
【问题描述】:

每当我删除只剩下匹配项的样本行时,代码都可以正常工作,但是当我像这样添加回来时:

Model.aggregate(
    {$match: {}},
    {$sample: {size: 2}},
    (err, rsp)=>{
   callback(err,rsp);
});

它会抛出一个错误,指出第一个参数必须是字符串或缓冲区。它只能由 {$sample: {size: 2}} 引起。为什么? 示例在猫鼬中不起作用吗??

【问题讨论】:

  • 您使用的是哪个猫鼬版本?我正在使用 ^4.11.8 并且工作正常
  • @AyushMittal 我正在使用 4.10.8
  • 可以分享一下错误截图吗
  • @AyushMittal 我在编辑中添加了它。当我返回 {$sample: {size:2}} 时会发生此错误。仅使用 match 时,一切运行顺利。 m_resume.js:94 是 sn-p 中的 callback(err,rsp)。
  • 我尝试时效果很好。您使用的是什么版本的 MongoDB 服务器?

标签: node.js database mongodb mongoose


【解决方案1】:

试试这个:

model.instance.aggregate([{ $match:  buildQuery(model) }]).sample(20).exec(function (err, results) {
    console.log(model.size, results.length);
});

【讨论】:

    猜你喜欢
    • 2018-07-22
    • 2019-08-28
    • 2018-05-02
    • 2017-05-26
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多