sql >> Databasteknik >  >> NoSQL >> MongoDB

Min api-kod hämtar en tom datamatris från mongodb medan koden fungerar bra på mongodb lekplats

Det visade sig att castingen av ObjectId verkade vara problemet. Vi måste använda mongoose.Types.ObjectId

API-koden kommer att se ut så här

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. Uppdatera meteorsamling utan att ta bort eller åsidosätta befintliga fält

  2. MongoDb tidsstämpel

  3. Ansluter Spark till flera Mongo-samlingar

  4. MongoDB:kan inte använda en markör för att iterera genom all data