MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mój kod API pobiera pustą tablicę danych z mongodb, podczas gdy kod działa dobrze na placu zabaw mongodb

Okazuje się, że problemem było rzutowanie ObjectId. Musimy użyć mongoose.Types.ObjectId

Kod API będzie wyglądał tak

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Nie można kanonizować zapytania:BadValue Za dużo wyrażeń tekstowych

  2. Utwórz kopię zapasową bazy danych meteorów za pomocą mongodump?

  3. JavaScript - Jak zapisać datę w dokumencie MongoDB w formacie ISODate?

  4. Jak MongoDB traktuje zapytania find().sort() w odniesieniu do indeksów pojedynczych i złożonych?

  5. Warunkowo uwzględnij etapy potoku agregacji