Как использовать функцию js с драйвером mon go - go - PullRequest
0 голосов
/ 28 февраля 2020

Цель состоит в том, чтобы реализовать поле счетчика (вид автоинкремента) в некоторой коллекции. Я могу сохранить эту функцию через mongoshell:

> db.system.js.save({
 _id: "getValueForNextSequence",
 value : function(fieldName){
    var sequenceDoc = db.counters.find({sequenceName: fieldName }).toArray()[0];
  if (sequenceDoc.sequence > 9998){
     sequenceDoc =  db.counters.findAndModify({
      query:{sequenceName: fieldName },
      update: {$set:{sequence:1000}},
      new:true
    });
  }else {
    sequenceDoc =  db.counters.findAndModify({
      query:{sequenceName: fieldName },
      update: {$inc:{sequence:1}},
      new:true
    });
  }
  return sequenceDoc.sequence;
}
})

У меня есть коллекция counters, где я храню данные для getValueForNextSequence:

{fieldName: "shotID" , sequence : 0 }

и затем назовите его (снова из оболочки):

 db.loadServerScripts()

> db.STORE.insert({
... "shortID":getValueForNextSequence("shortID"),
... "item_short_name": "DEF",
... "specification": "book",
... "category": "fictional",
... "seller": "best_buy",
... "network": "XYZ",
... "plan": "regular"
... })
WriteResult({ "nInserted" : 1 })

Но я не могу понять, как я могу сделать то же самое с официальным драйвером go -mon go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...