sql >> Databáze >  >> NoSQL >> MongoDB

Můj kód api načítá prázdné pole dat z mongodb, zatímco kód funguje dobře na hřišti mongodb

Ukázalo se, že problémem je obsazení ObjectId. Musíme použít mongoose.Types.ObjectId

Kód API bude vypadat takto

getProductByProductId: function (productId) {
return new Promise((resolve, reject) => {
  User.aggregate([
  {
  $match: {
    "shops.products._id": mongoose.Types.ObjectId(productId)
  }
  },
  {
    "$unwind": "$shops"
  },
  {
    "$unwind": "$shops.products"
  },
  {
    $match: {
    "shops.products._id": mongoose.Types.ObjectId(productId)
  }
  },
  {
  $project: {
  "_id": "$shops.products._id",
  "title": "$shops.products.title"
  }
}
])
.then(products => {
resolve(products)
}).catch(err => {
reject(err);
});
});
}



  1. jak vložit vložený dokument pomocí jarních dat mongodb mongotemplate

  2. Mongodb najít dotaz s $ blízko a souřadnice nefungující

  3. Najděte poslední záznam každého dne

  4. Vypočítejte vzdálenost v Javě pomocí MongoDB