gpt4 book ai didi

mongodb - 如何获取mongodb中所有具有对象id的记录

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

在 mongodb 中有一个用户数据已存储在集合 challange 中,数据如下所示:

{
"_id" : 1,
"name" : "puneet",
"last" : "jindal",
"email" : "puneet@g.com"
}
{
"_id" : ObjectId("5b3af82cdb3aaa47792b5fd3"),
"name" : "hardeep",
"last" : "singh",
"email" : "hardeep@g.com"
}
{
"_id" : 3,
"name" : "gaurav",
"last" : "bansal",
"email" : "gaurav@g.com"
}
{
"_id" : ObjectId("5b3af87ddb3aaa47792b5fd4"),
"name" : "manish",
"last" : "jindal",
"email" : "manish@g.com"
}

在上面的数据中有四个记录,其中两个具有整数形式的 id,其他具有对象形式的 id。我只想检索在 id 字段中具有 object id 的所有记录。谁能告诉我应该在代码中编写什么查询,该查询将只检索具有对象 ID 的记录。

更新:

我正在使用的代码:

type User struct {
Id bson.ObjectId `json:"_id" bson:"_id,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
Last string `json:"last,omitempty" bson:"last,omitempty"`
Email string `json:"email,omitempty" bson:"email,omitempty"`
}
type Users []User

func GetAllUsers(listQuery interface{}) (result Users, err error) {
mongoSession := config.ConnectDb()
sessionCopy := mongoSession.Copy()
defer sessionCopy.Close()
getCollection := mongoSession.DB(config.Database).C(config.UsersCollection)
err = getCollection.Find(listQuery).Select(bson.M{"password": 0}).All(&result)
if err != nil {
return result, err
}
return result, nil
}

conditions := bson.M{'_id': bson.M{'$type': "objectId" } }
data, err := models.GetAllUsers(conditions)

我使用这个时遇到的错误:-

controllers/UserController.go:18:23: invalid character literal (more than one character) controllers/UserController.go:18:28: cannot use '\u0000' (type rune) as type string in map key

最佳答案

'_id''$type' 无效 rune literals , 你不能在一个 rune 文字中列出多个 rune (字符)(只有一个 rune )。

bson.M type 是具有 string 键类型的映射,因此您必须使用 string literals (或表达式),像这样:

conditions := bson.M{"_id": bson.M{"$type": "objectId"}}

另请注意 bson包裹存放 constants对于不同的类型,所以使用这些常量更安全:

conditions := bson.M{"_id": bson.M{"$type": bson.ElementObjectId}}

关于mongodb - 如何获取mongodb中所有具有对象id的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51147095/

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