我想通过查找数据_id
。我知道该数据存在并且_id
存在(我已经用pymongo测试了它)。
但是下面的代码找不到它:
type id_cookie struct {
IdCookie int
}
func get_id_mongo() int {
session, err := mgo.Dial("127.0.0.1")
if err != nil {
panic(err)
}
defer session.Close()
// Optional. Switch the session to a monotonic behavior.
session.SetMode(mgo.Monotonic, true)
c := session.DB("id_bag").C("id_cookie")
data := id_cookie{}
err2 := c.FindId(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).One(&data)
if (err2 != nil){
Info.Println("error")
Info.Println(err2)
}
Info.Println(data)
return data.IdCookie
}
它只是给我一个回报0
。
但是我可以使用pytmongo和python找到它。
import requests
import pymongo
from pymongo import MongoClient
from bson.objectid import ObjectId
from pprint import pprint
client = MongoClient('127.0.0.1', 27017)
import base64
db = client.id_bag
pprint(db.collection_names())
result = db.id_cookie.insert_one(
{ 'IdCookie': 1
})
print(result.inserted_id)
data = db.id_cookie.find_one({"_id": ObjectId("58593d1d6aace357b32bb3a1")})
print(data)
结果如下:
['id_cookie', 'system.indexes']
58593d2d6aace357b32bb3a3
{'IdCookie': 1, '_id': ObjectId('58593d1d6aace357b32bb3a1')}
有人有什么主意吗?
编辑:我已经尝试了:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
但我仍然有0:
INFO: 2016/12/20 15:42:08 Cookie_Id.go:147: 1
INFO: 2016/12/20 15:42:08 Cookie_Id.go:149: 2
INFO: 2016/12/20 15:42:18 Cookie_Id.go:87: data
INFO: 2016/12/20 15:42:18 Cookie_Id.go:88: {0}
INFO: 2016/12/20 15:42:18 Cookie_Id.go:89: 0
INFO: 2016/12/20 15:42:18 Cookie_Id.go:118: 0
INFO: 2016/12/20 15:42:18 Cookie_Id.go:128: OK
您可以使用Collection.FindId()
然后仅传递id值,或者使用Collection.Find()
,然后还必须使用字段名称指定一个值:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
One(&data)
如果没有错误,则表示找到了文档。
如果您始终看到已0
打印(作为id_cookie.IdCookie
字段的值),则表示持有此ID的文档中的字段具有不同的名称。
使用struct标记来告诉它如何存储在您的MongoDB中。例如,如果在您的MongoDB中将其称为"myid"
,则可以这样映射它:
type id_cookie struct {
IdCookie int `bson:"myid"`
}
还要注意,您不应在每次要查询某些数据时都连接到MongoDB服务器,而应该连接一次并重用会话
问题内容: 我希望创建一个查询,在其中将过滤出包含通配符的ID。例如,除了ID包含单词current之外,我想在所有地方搜索内容。这可能吗? 问题答案: 是的,可以使用正则表达式过滤器 /正则表达式查询。我无法找到一种使用Complement选项直接执行此操作的方法,因此我已经 暂时解决了您的问题。如有可能,我会在稍后完善答案。
问题内容: 以下定位技术之间有什么区别? 而且,从 性能角度来看 ,哪种方法是通过id定位元素的最快方法? 问题答案: 您的问题很难回答,肯定会给出一个结论性的答案。实际上,我很想将此问题标记为“太宽泛”,其他答案和评论也支持该问题。 以您的为例。纵观Selenium来源, 大多数 驱动程序只是获取您提供的ID,然后将其传递给有线协议: 如您所知,每个浏览器供应商都在单独的二进制文件中实现自己的有
问题内容: 我尝试在MongoDB中找到我的用户,但是当我运行此代码时: 只是告诉我: 并且不要返回其他值! 非常感谢您的参与! 问题答案: 只是您应该在结构名称的开头使用大写字母!而且你也不需要 你可以写 : 祝好运 :))
正如我从“云火数据模型”指南中得到的,“每个文档都由一个名称标识。”是否可以通过该文档标识符(即名称或ID)查询集合? 例如,集合“Things”中的文档具有IDs、1、2等。: 是否可以查询 ID 小于 100 的文档?
问题内容: 使用,似乎最佳做法是将对象ID设置为。 这不是很方便,因为结果是ID 代替了普通ID ,而是以二进制形式存储在DB中。谷歌搜索似乎会产生大量问题,例如“如何从bson id中获取字符串?”,实际上,确实存在的方法可以让您获取字符串。 将数据从mongo导出到另一个数据库平台时,使用bson变得更加烦人(当处理收集的大数据并且您想要将其与后台mongo DB的某些属性合并时就是这种情况)
我正在使用selenium Java搜索不同的网站,我知道要查找特定的WebElement,有不同的方法,比如使用Xpath、使用Class或使用id。假设某网站具有如下所示的html结构 现在,如果我想从类名为“score”和“score_title”的div中提取文本,即1%的强度、43:1的情感、75%的激情和12%的到达,下面哪个选项最好。