sql >> データベース >  >> NoSQL >> MongoDB

私のAPIコードはmongodbから空のデータ配列を取得しますが、コードはmongodbプレイグラウンドで正常に機能します

    ObjectIdのキャストが問題のようであることが判明しました。 mongoose.Types.ObjectIdを使用する必要があります

    APIコードは次のようになります

    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. マングースなしでエクスプレスを使用してmongodbに接続するにはどうすればよいですか?

    2. MongoDB $ abs

    3. openshiftのnodejsとmongodbでPOSTできません

    4. 埋め込まれたドキュメントのみを返すMongoDBクエリ