sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb hur frågar man en summasträng?

Detta är inte möjligt från och med MongoDB 3.4. Den här funktionen har redan efterfrågats, men har inte implementerats ännu:

Behöver en typkonverteringsmekanism för att konvertera mellan strängar och tal

Så det enda sättet att lösa ditt problem är att manuellt utföra totalAmount summan i javascript...

Redigera

Detta är nu möjligt i MongoDB 4.0 vilken introducerade operatorn för att konvertera från en typ till en annan, till exempel $toDouble

så frågan skulle vara:

db.collection.aggregate([
  {
    "$group": {
      "_id": null,
      "totalAmount": {
        "$sum": {
          "$toDouble": "$orderTotal.amount"
        }
      },
      "count": {
        "$sum": 1
      }
    }
  }
])

du kan prova det här:mongoplayground.net/p/4zJTPU912Es




  1. MongoDB:Hur tar man reda på om ett arrayfält innehåller ett element?

  2. $addToSet-implementering för arrayuppdatering på PATCH-begäran

  3. varför får jag favicon.ico när jag använder findOne-metoden för express params-rutter?

  4. Mongoose välj subdoc-fält