【问题标题】:how to return sliced element from an mongodb array?如何从 mongodb 数组中返回切片元素?
【发布时间】:2021-06-20 20:26:44
【问题描述】:

我有一个大小为 250 MB 的数组中的数据列表。每次查询时,即使我正在对数据进行切片,也会下载完整的 250 条数据。 这是我的代码

DomainsApi.findOne({}, {auction_list:{$slice:[10, 20]}}, (err, doc)=>{
  if(doc){
    console.log(doc)
  }
})

我只想要 auction_list 数组中的 10 件商品,但它不起作用。每次都在下载完整的 250 MB 数据,占用了我的带宽和时间。

我检查了 mongodb 文档,但这对我没有帮助。

我怎样才能做到这一点?我在节点 js 上并使用 mongodb atlas 免费帐户。 提前致谢

【问题讨论】:

  • 你在nodejs中使用哪个工具来处理Mongo:mongoose、mongodb等?
  • MongoDB 节点 js
  • @turivishal 我试过了,但它返回了整个数组。

标签: node.js mongodb mongodb-atlas


【解决方案1】:

我建议您使用聚合。请检查:

db.collection.aggregate([
  {
    $project: {
      _id: 0,
      slicedArray: {
        $slice: [
          "$auction_list",
          10
        ]
      }
    }
  }
])

Playground

【讨论】:

  • db.collectioni.find({}).project({auction_list:{$slice:[0,1]}}) 这也有效。我是对的吗?
  • 是的@IrfanHabib,你和我写的几乎一样。
  • 这里有一个关于切片的link,为什么当我通过db.collection.findI({}, {auction_list:{$slice:[2,4]}})查询时它不起作用
猜你喜欢
  • 2014-04-22
  • 1970-01-01
  • 2015-05-27
  • 2011-10-12
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多