Я хотел бы найти данные по _id
. Я знаю, что эти данные существуют и что этот _id
существует (я тестировал его с pymongo).Поиск по id с mgo
Но код ниже не найти:
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')}
Кто-нибудь есть какие-либо идеи?
Edit: я уже попробовать с:
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
Спасибо за примечание, но IdCookie не _id – user462794
@ user462794 См. отредактированный ответ. Если вы используете 'FindId()', вам нужно передать значение id (и не обернуто в 'bson.M'). Или используйте 'Find()', а затем вы можете передать id, завернутый в 'bson.M'. – icza
У меня все еще есть 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: данные 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 – user462794