1

mongoDB Realm HTTP 関数内で mongoDB Atlas ドキュメントのプロパティ値にアクセスしようとしています。

mongoDB コレクション内のドキュメントは次のようになります。

{
  "_id": {
    "$oid": "60dd5a9da81cb4304a8992fe"
  },
  "name": "testName",
  "reviews": [
    {
      "date": {
        "$date": {
          "$numberLong": "1624924800000"
        }
      },
      "stars": {
        "$numberInt": "1"
      },
      "review": "Test"
    },
    {
      "date": {
        "$date": {
          "$numberLong": "1625183486238"
        }
      },
      "stars": {
        "$numberInt": "3"
      },
      "review": "testReview"
    }
  ],
  "stars": {
    "$numberDouble": "2.0"
  }
}

これは MongoDB Realm で書かれています。

exports = function(payload, response) {
    const collection = context.services.get("mongodb-atlas").db("info").collection("landlords"); // get landlords collection
    const query = {"_id":new BSON.ObjectId(payload.query._id)}; // set up query for search
    const landlord = collection.findOne(query); // finds object with corresponding id
    return landlord.stars; // should return the stars value in the object

ただし、実行すると、出力は次のようになります。

> result (JavaScript): 
EJSON.parse('{"$undefined":true}')

星のプロパティの値を返すために探しています。この場合は 3 です。

でプロパティ値を呼び出してみましlandlord["stars"]たが、同じ応答が得られます。家主の文書を返すtypeofと、それは確かにオブジェクトであると書かれています。ただし、何らかの理由でプロパティ値にアクセスしようとすると、未定義として返されます。

4

1 に答える 1