Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python&;MongoDB-如何按BinData类型查找_Python_Mongodb_Pymongo_Bson - Fatal编程技术网

Python&;MongoDB-如何按BinData类型查找

Python&;MongoDB-如何按BinData类型查找,python,mongodb,pymongo,bson,Python,Mongodb,Pymongo,Bson,我是MongoDB的新手。无论如何,我正在尝试保存一些经过加密和base64编码的数据 data = b64encode(self.iv + AES.new(self.key, self.mode, self.iv).encrypt(self.pad2(self.data))) self.db.users.insert({'data':data}) self.db.users.find({'data':data}) 插入工作正常,但查找数据返回0个结果。MongoDB shell输出以下内容:

我是MongoDB的新手。无论如何,我正在尝试保存一些经过加密和base64编码的数据

data = b64encode(self.iv + AES.new(self.key, self.mode, self.iv).encrypt(self.pad2(self.data)))
self.db.users.insert({'data':data})
self.db.users.find({'data':data})
插入工作正常,但查找数据返回0个结果。MongoDB shell输出以下内容:

db.users.find()
{ "_id" : ObjectId("50f848dc34257b0d5e3d9b29"), "data" : BinData(0,"R1VhaHl3MGpLSStkY0lWU255ZjhneGp2RWk3cEk3MnFRTCsxOTcyOC82WT0=")}

现在如何按BinData文件类型查找文档?我尝试了bson.binary.binary,但没有成功。

不确定您是否仍然需要它(或者为什么要从binary转换为base64到binary),但我希望这有帮助:

import base64
import pymongo
from pymongo import binary
# if pymongo version >= 1.9, use the following instead
# from bson import binary

con = pymongo.Connection()
b64 = base64.b64encode("ajskldfjaklsdjfklasdjf")
bi = binary.Binary(b64)
con.test.test.insert({'foo': bi})
con.test.test.find_one({'foo': bi})
输出:

{
    u'_id': ObjectId('50f99b4a9f956a1924000000'),
    u'foo': Binary('YWpza2xkZmpha2xzZGpma2xhc2RqZg==', 0)
}

您确定它返回0个结果吗?pymongo中的
find()
方法返回一个游标。也许你应该尝试
find_one()
find().count()
来衡量成功与否。是的,正如我所做的那样。count()及其0。似乎我试图使用错误的二进制文件。我试过bson.binary,从来没有意识到pymongo也有一个。好的,我自己试过,我得到一个错误,声称pymongo中不存在二进制。怪异:(您可能正在使用pymongo的较新版本。在较新版本中,他们将二进制位分离到
bson
包中。请尝试从bson导入二进制文件
。请参阅以下提交