In [1]:
from hashlib import md5

In [16]:
long_list = []
for i in xrange(10000):
    long_list.append(md5(str(i)).hexdigest())

In [17]:
from bsonsearch import bsoncompare

In [18]:
bc = bsoncompare()

In [19]:
in_spec = {"a":{"$in":long_list}}
inset_spec = {"a":{"$inset":long_list}}

In [20]:
m1 = bc.generate_matcher(in_spec)

In [21]:
m2 = bc.generate_matcher(inset_spec)

In [29]:
doc = {"a":md5("9740").hexdigest()}
did = bc.generate_doc(doc)

In [30]:
%%timeit
bc.match_doc(m1, did)


1000 loops, best of 3: 401 µs per loop

In [31]:
%%timeit
bc.match_doc(m2, did)


1000000 loops, best of 3: 1.17 µs per loop

In [ ]: