gpt4 book ai didi

mongodb - 在查找中使用 $slice

转载 作者:IT王子 更新时间:2023-10-29 02:08:14 24 4
gpt4 key购买 nike

我有一个 mongodb 文档,其中包含一个名为“数据”的数组。我希望只能从数组中获取特定范围。在 robo 3T 中,我可以运行 db.getCollection('collection').find({"_id": "user1"},{data:{ $slice:[1,4]]} ) 从位置 1 的数据数组中获取 4 个元素。

如何在 golang 中运行相同的查询?

我尝试过的:

c.Find(bson.M{"_id":"user1" , "data":bson.M{"$slice":[]int{1,4}}}  )

but i get "unknown operator $slice" Not sure what to do. Any help please?

Mongo 文档

{
"_id": "user1",
"time": 32467777,

"data": [

88,
45,
1,
4,
7,
123,
33,
132

]


}

最佳答案

您传递给 MongoDB 的 find() 的第二个参数是一个投影,mgo 中的等效项是 Query.Select() .

所以你可以像这样做你想做的事:

var results bson.M
err := c.Find(
bson.M{"_id": "user1"},
).Select(
bson.M{"data": bson.M{"$slice": []int{1, 4}}},
).One(&results)

另请注意,要仅通过其 ID 查询某些内容,您可以使用 Collection.FindId() , 所以你可以像这样写得更紧凑:

var results bson.M
err := c.FindId("user1").Select(
bson.M{"data": bson.M{"$slice": []int{1, 4}}},
).One(&results)

关于mongodb - 在查找中使用 $slice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53564576/

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