0

私は Mongodb ステッチ、関数を書いています。

奇妙な部分は、Mongodb ステッチ関数クライアント内でそれを記述することです。BSON.ObjectId を実行する必要があります。

    const games = mongodb.collection("games");
    const gameId = "5cb9404ffc6da85909eb561c";
    const objectId = BSON.ObjectId(gameId);
    const query = { "_id" : objectId };
    return games.findOne(query);

しかし、アプリを使用argして関数に渡すと、文句を言います [StitchServiceError: Error: ObjectId in must be a single string of 12 bytes or a string of 24 hex characters]

元に戻さなければならないもの

    const gameId = "5cb9404ffc6da85909eb561c";
    const query = { "_id" : gameId };
    return games.findOne(query);

nullMongoDB ステッチ関数クライアント内でテストすると、これが返されます。

MongoDB がこのように設計する理由

4

2 に答える 2

0

アプリが機能するには、id 文字列を渡すだけです。

const gameId = "5cb9404ffc6da85909eb561c";
const query = { "_id" : gameId };
return games.findOne(query);
于 2019-04-20T06:44:45.240 に答える
0

これは私のために働いた:

    exports = function(payload, response) {
      const mongodb = context.services.get("mongodb-atlas");
      const collection = mongodb.db("mydatabase").collection("mycollection");
      // const id = "5f2b7706fae92314e01a2c3c";
      // let cursor = collection.findOne({_id: BSON.ObjectId(id)});
      let cursor = collection.findOne({_id: BSON.ObjectId(payload.query.id)});
      cursor.then(function(result){
        response.setStatusCode(200);
        response.setHeader(
          "Content-Type",
          "application/json"
        );
        response.setBody(JSON.stringify(result));
      });
    };

次にテストします。

https://yourwebhookurl?id=5f2b7706fae92314e01a2c3c

参照: https://intercom.help/mongodb-atlas/en/articles/1566512-how-do-i-work-with-objectid-in-stitch

于 2020-08-07T19:34:35.747 に答える