# MongoDB update from list

**URL:** <https://community.haxe.org/t/mongodb-update-from-list/511>\
**Category:** Other\
**Tags:** mongodb\
**Created:** [March 7, 2018, 9:17am UTC](https://community.haxe.org/t/mongodb-update-from-list/511 "2018-03-07T09:17:03Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![damoebius](https://community.haxe.org/user_avatar/community.haxe.org/damoebius/32/73_2.png) [@damoebius](https://community.haxe.org/u/damoebius)\
**Post date:** [March 7, 2018, 9:17am UTC](https://community.haxe.org/t/mongodb-update-from-list/511/1 "2018-03-07T09:17:03Z")

</div>

Hi,  
I know this is not realy an Haxe related post, sorry for that.

```javascript
public function updateUsersScore(users:Array<User>):Promise<WriteOpResult> {
        return new Promise(function(resolve, reject) {
            MongoClient.connect(Config.getInstance().db, function(error:MongoError, db:MongoDatabase) {
                db.collection(COLLECTION_NAME, null, null).update({_id:null}, users, { upsert : true }, function(error:MongoError, result:WriteOpResult):Void {
                    db.close();
                    if (error != null) {
                        Node.console.error(error);
                        reject(error);
                    } else {
                        resolve(result);
                    }
                });
            });
        });
    }

```

According to this function name, i want to update users score. I have an Array and for each user.\_id i want to set user.score.  
Is it possible to do it in one request or should i iterate over my list ?

---

<div class="post-metadata">

**Author:** ![damoebius](https://community.haxe.org/user_avatar/community.haxe.org/damoebius/32/73_2.png) [@damoebius](https://community.haxe.org/u/damoebius)\
**Post date:** [March 13, 2018, 1:46pm UTC](https://community.haxe.org/t/mongodb-update-from-list/511/2 "2018-03-13T13:46:03Z")

</div>

To myself : it’s possible to use a Bulk to perform this request :

```haxe
 var bulk = db.collection(COLLECTION_NAME, null, null).initializeUnorderedBulkOp();
                    for (user in users) {
                        var query:Dynamic = {};
                        Logger.info("score " + user.score);
                        query.$set = { "score": user.score };
                        bulk.find({bot:user.bot}).upsert().update(query);
                    }
                    var result:BulkWriteResult = bulk.execute();
                    resolve(result);

```
