gpt4 book ai didi

mongodb - 存储在文档字段中的数组的分页

转载 作者:可可西里 更新时间:2023-11-01 09:11:21 31 4
gpt4 key购买 nike

假设我在 mongo 数据库中有一个集合 People:

[{
id: 1,
name: "Tom",
animals: ["cat", "dog", "fish", "bear"]
},
{
id: 2,
name: "Rob",
animals: ["shark", "snake", "fish", "bear", "panda"]
},
{
id: 3,
name: "Matt",
animals: ["cat", "fish", "bear"]
}]

出于 REST API 的目的,我需要创建一个分页系统来查看人们的动物,并且每个请求仅返回 3 个。因此,例如,如果您转到 /people/2,API 应返回此数组:

["shark", "snake", "fish"]

我正在尝试使用 Mongo 方法获得此结果。这是我的尝试:

db.getCollection('people').find({id: 2}, {animals: 1, _id:0}, {limit: 3})

不幸的是,它不能像那样工作并返回整个对象。谁能告诉我怎么做?

最佳答案

对于您的问题,您需要 $slice投影运算符而不是 limit。后者限制作为查询结果返回的文档 的数量。相反,$slice 运算符正是为满足您的需要而设计的。

这是一个如何在您的用例中使用它的示例:

> db.getCollection('people').find({id: 2}, {_id: 0, animals: {$slice: [0, 3]}})
{
"id" : 2,
"name" : "Rob",
"animals" : [
"shark",
"snake",
"fish"
]
}

关于mongodb - 存储在文档字段中的数组的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792440/

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