moai / luamongo

Lua driver for mongodb
https://github.com/moai/luamongo
MIT License
170 stars 58 forks source link

How to specify readConcern for find()? #47

Open mondwan opened 8 years ago

mondwan commented 8 years ago

I am running a single mongodb.

However, I keep reading stale data from lua binding after nodejs complete the write operation. Therefore, I would like to specify read and write concern on both side to ensure no stale data.

in nodejs, I ensure the write concern by j and w.

    return this._db.collection('runtimeDataset').updateOne(
        {_id: cmd},
        updateContext,
        {j: true, w: 1}
    ).then(function () {
        return q.delay(1000);
    });

I have tried to wait for 10 seconds. It still reads the stale record.

But, I am not sure how to specify readConcern in this lua binding.

Or, are there any hints for not reading stale data?

pakozm commented 8 years ago

As far as I know, this binding doesn't implements write/read concerns... if you have more than one mongod instance, you can change your JS write increasing the argument of w:1, it would be better to use the same number as mongod instances you need to acknowledge. Currently I don't figure any other way to ensure write/read concerns using this binding. I will let this issue open for future implementation of read/write concerns.

mondwan commented 8 years ago

Thanks.