I open a lmdb database using this code: 
    lmdb_env = lmdb.open(source_path, readonly=True)
How can I count the number of records in this database?
I think it should be like this:
lmdb_env = lmdb.open(lmdb_file_name, readonly=True)
print lmdb_env.stat()
Then it prints the directory that Jaco pasted here.
    env = lmdb.open('db file path', max_dbs = ' > 0')
    with env.begin() as tx:
        db = env.open_db(b'db name', txn=tx)
        print(env.stat()) 
        print(tx.stat(db)) # this gives stats about one specific db
env.stat() gives entries of the main database. tx.stat(db) gives entries of one named database.
You can use event.stat(). It will return the following dictionary with entries detailing the number of records in this database:
{'branch_pages': 1040L,
'depth': 4L,
 'entries': 3761848L,
 'leaf_pages': 73658L,
 'overflow_pages': 0L,
 'psize': 4096L}
                        I found a simple solution using for loop. Here it is:
count = 0
for key, value in lmdb_env.cursor():
        count = count + 1  
However, I think there should be a better way using pre-defined function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With