当前位置: 首页 > 面试题库 >

Golang mgo查找

晋弘义
2023-03-14
问题内容

我尝试在MongoDB中找到我的用户,但是当我运行此代码时:

type Person struct {
    Id bson.ObjectId `bson:"_id,omitempty"`//`json:"id" bson:"_id,omitempty"`
    username string `json:"username" bson:"username"`
    score string `json:"score" bson:"score"`
    level string `json:"level" bson:"level"`
}

result := Person{}
var id = "5b8a45912ed6f24d945bee38"
err = c.Find(bson.M{"_id":bson.ObjectIdHex(id)}).Select(bson.M{"username": 1, "score":1, "level": 1}).One(&result)

fmt.Println(result)

只是告诉我:

{ObjectIdHex("5b8a45912ed6f24d945bee38") }

并且不要返回其他值!

非常感谢您的参与!


问题答案:

只是您应该在结构名称的开头使用大写字母!而且你也不需要

 Select(bson.M{"username": 1, "score":1, "level": 1})

你可以写 :

err = c.FindId(bson.ObjectIdHex(id)).One(&result)

祝好运 :))



 类似资料:
  • 我刚开始在DynamoDB上建一个社交网站。 我将有相当数量的数据与一个用户相关,我计划将这些全部放入一个表中--例如: 用户ID 出生日期 头发 照片URL 详细信息 可能有几百个属性。 问题: 将这么多数据放入一个表中有什么问题吗? 我如何查询该数据(我是否可以执行类似这样的查询:“所有在这个年龄,这个颜色头发,这个位置,并且这次登录的成员)-假设所有这些数据都包含在表中? 如果一个表的内容很

  • 以下策略可用于仓库基础结构来解决查询。你可以在XML配置中的命名空间通过query-lookup-strategy属性来配置策略或者在JAVA配置中通过Enable${store}Repositories声明queryLookupStrategy属性。有些策略可能对于特别的datastores并不支持。 CREATE 从查询方法名来尝试构建一个特别的数据查询。一般的方法都是从方法名称中移除已知设定

  • 主要内容:UnionFind1.java 文件代码:本小节基于上一小节并查集的结构介绍基础操作,查询和合并和判断是否连接。 查询元素所在的集合编号,直接返回 id 数组值,O(1) 的时间复杂度。 ... private int find ( int p ) {     assert p >= 0 && p < count ;     return id [p ] ; } ... 合并元素 p 和元素 q 所属的集合, 合并过程需要遍历一遍所有元素

  • 程序员经常要处理数组中存放的大量数据,可能需要确定数组是否包含符合某关键值(key value)的值。寻找数组中某个元素的过程称为查找(searching)。本节介绍两个查找方法:简单的线性查找(liner search)方法和更复杂的折半查找(binary search)方法。练习4.33和练习4.34要求用递归法实现线性查找与折半查找。 图4.19 的线性查找比较数组中每个元素与查找键(sea

  • 问题内容: 如何获取使用SQL Server的SQL查询返回的列数? 例如,如果我有如下查询: 它应该返回表A1中的总列数+表A2中的总列数。但是查询可能会更复杂。 问题答案: 这是一种方法: 您可以通过创建视图来执行类似的操作。

  • 这里是一些非常常见的常见问题: 似乎没有一个 Keys(...) 或者 Scan(...) 方法? 如何查询数据库中存在哪些键? 或者 似乎没有一个 Flush(...) 方法?如何删除数据库中的所有的键? 很奇怪的是,这里的最后一个关键词是数据库。 因为StackExchange.Redis的目标是针对集群等场景,知道哪些命令针对 数据库 (可以是分布在多个节点上的逻辑数据库)以及哪些命令针对

  • 工作空间中查找 Eclipse 查找对话框中可以允许用户在指定工作空间上使用单词或字母模式来查找文件。 或者你可以在指定项目或在 package explorer 视图上选择好指定文件夹来查找。 可通过以下方式来调用查找框: 在 Search 菜单上选择 Search 或 File 或 Java 按下快捷键: Ctrl + H 文件(File)查找允许用户查找所有文件类型,而 Java 查找只针对

  • 我们要编写的下一个函数是find,它的作用是在纸牌向量中查找指定的牌。这个函数的用途可能不是那么明显,但是我们可以利用它来演示两种查找方法,即线性查找和二分查找。 线性查找是比较直观的一个;它包括遍历牌堆并拿每张牌和我们要找的牌进行比较。如果找到了,返回纸牌出现位置的索引;没找到则返回-1。 int find (const Card& card, const apvector<Card>& dec