MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Мога ли да намаля текст в mongodb?

Няма смисъл да увеличавате/намалявате буквено-цифров низ; трябва да разделите стойността на оригиналния низ на значими части, преди да поискате от MongoDB (или кода на вашето приложение) да коригира цифровата част.

Обикновено с постоянни връзки вие също така ще увеличавате стойностите, вместо да намалявате - цялото предназначение на постоянните връзки е да гарантират, че дадена връзка винаги сочи към един и същ ресурс.

Изглежда, че всъщност искате да приложите модел на последователност, където намирате следващата налична стойност на последователност, която да използвате.

Например вижте:Създаване на автоматично увеличаваща се последователност в ръководството на MongoDB.

Ето една леко модифицирана версия на getNextSequence() функция в документацията, която използва upsert за да намерите съществуващ документ за брояч на охлюви или да вмъкнете нов. Върнатата стойност е нов уникален slug:

function getNextSequence(name) {
   var ret = db.counters.findAndModify(
      {
        query: { _id: name },
        update: { $inc: { seq: 1 } },
        upsert: true,
        new: true,
      }
   );

    // Return the new slug (eg: "example_1")
    return name + '_' + ret.seq;
}

> getNextSequence("example")
example_1
> getNextSequence("example")
example_2
> getNextSequence("example")
example_3

Ако искате да намалите от някаква начална стойност, можете да вмъкнете начална стойност за вашата последователност и вместо това да я намалите с $inc: { seq: -1 } .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. new Date() в сборния $project

  2. Как да промените shard ключа

  3. Как да получа списък само с ObjectId, използващ pymongo?

  4. намерете идентификатора на последния поддокумент, вмъкнат в mongoose

  5. Натиснете вътре forEach със заявка, която не работи правилно