1. ホーム
  2. javascript

Mongoose でコレクションからある特定のフィールドを除外するには?

2023-10-14 01:26:26

質問

Mongoose ODM()を使ったNodeJSアプリケーションを持っています。 Mongoose 3.3.1 ). コレクションから1つのフィールドを除いてすべてのフィールドを取得したいのです。たとえば、私は6つのフィールドを持つコレクション製品を持っている、私はフィールドを除くすべてを選択したい "Image" 。私は"を使用しました。 を除外します。 メソッドを使用しましたが、エラーが発生しました。 これは私のコードでした。

    var Query = models.Product.find();
    Query.exclude('title Image');

    if (req.params.id) {
        Query.where('_id', req.params.id);
    }


    Query.exec(function (err, product) {
        if (!err) {
            return res.send({ 'statusCode': 200, 'statusText': 'OK', 'data': product });
        } else {
            return res.send(500);
        }
    });

しかし、これは エラー

Express
500 TypeError: Object #<Query> has no method 'exclude'.........

また、試しに var Query = models.Product.find().exclude('title','Image');var Query = models.Product.find({}).exclude('title','Image'); でも同じエラーが出ます。Mongoose のコレクションから特定のフィールドを除外するにはどうしたらよいでしょうか。

どうすれば解決しますか?

使用方法 query.select を使うようにしましょう。

除外したいフィールド名の前に - で囲みます。

Query.select('-Image');

余談ですが、JavaScriptでは、大文字で始まる変数はコンストラクタ関数用に予約する必要があります。 ですから Query として query のように記述してください。