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
と、それは確かにオブジェクトであると書かれています。ただし、何らかの理由でプロパティ値にアクセスしようとすると、未定義として返されます。