Expressを使用したMongodbとnodejs

クリスチャンペレラ

まず第一に私の悪い英語の言い訳ですが、私は自分自身を説明するために最善を尽くします。これまでExpressを使用してnodejsプロジェクトを開発しようとしている学生の場合、単一のjsonファイルでdbとして使用し、それを介して作業していました。しかし今、私はMongodbに移行したいと思っています。私はすでに "mongoimport --db RestauranteSin" --collection "Restaurante" --file'filename '"を使用してデータベースをインポートしたので、正常にインポートしました。

次に行うことは、新しいエンドポイントを作成することです

app.get('/mongoAllRestaurants', (req, res) => {
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect("mongodb://localhost:27017/", { useNewUrlParser: true },(err, db) => {
    if (err) throw err;
    var dbo = db.db("RestauranteSin");
    var ObjectId = require('mongodb').ObjectID; 
    dbo.collection("Restaurante").find({_id:ObjectId("5bd218627c5b747cdb14c51e"), restaurantes: {$elemMatch : {titulo_restaurante: "BarJanny"}}}).toArray((err, result) => {
      if (err) throw err;
      console.log(result[0]);
      res.send(result);
      db.close();
    });
});

});

そして私のdbはこのようなものです:

[
"_id" : "345678987654",
"restaurantes": [
    {
        "titulo_restaurante": "example1",
        ... 
        ...
        ...
    },
    {
        "titulo_restaurante": "example2",
        ... 
        ...
        ...
    },
    ...
    ...
    ...
]

]

そして、これが問題です。¿なぜクエリを実行すると、フィルターなしですべてのデータベースが返されるのですか?私はクエリの組み合わせがたくさんあり、それは常にすべてのデータベースまたは空の配列を私に返しますか?結果として、次のようなものが必要です。

{
        "titulo_restaurante": "example1",
        ... 
        ...
        ...
    }
ダミアーノベルッチ

クエリコードには2つのエラーがあります。

  • newコマンドがありません_idのドキュメントを見つけると、特定の初期化(id文字列)を持つObjectIDオブジェクトが見つかるため、検索するオブジェクトを作成する必要があります:new ObjectId( 'idString')、結果適切なドキュメントを見つけるためにdocuments_idと比較できるObjectIDになります(varObjectId = require('mongodb').ObjectID;ではmongodbパッケージのObjectIDクラスが必要であり、var ObjectIdに割り当てることに注意してください)。

  • find内のプロジェクションは非推奨です。次のようにprojection()を使用できdb.collection('collectionName').find({ field: value }).project({ field: value })ます。クエリの場合:dbo.collection("Resturante").find({ _id: new ObjectId('5bd218627c5b747cdb14c51e') }).project({ restaurantes: { . $elemMatch: { titulo_restaurante: "BarJanny" } } })

したがって、エラーのないクエリは次のとおりです。

dbo.collection("Resturante")
    .find({ _id: new ObjectId('5bd218627c5b747cdb14c51e') })
    .project({ restaurantes: { $elemMatch: { titulo_restaurante: "BarJanny" } } })
    .toArray((err, result) => {
        if (err) throw err;
        console.log(result[0].restaurantes[0]); // { titulo_restaurante: 'BarJanny' }
        db.close();
    });

GET応答のres.send(result)db.close()追加します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

vhostとgreenlock-expressを使用したNodeJSサブドメイン

分類Dev

ExpressとNodejsを使用した空のボディ

分類Dev

Expressとnodejsを使用したランディングページ

分類Dev

MongoDBとNodejsを使用した日付の挿入とクエリ

分類Dev

winston-mongodbとexpress-winstonを使用したロギング

分類Dev

mongodbとnodejsを使用したカテゴリ階層の集約

分類Dev

NodeJSを使用したMongoDB平均集計

分類Dev

async / awaitを使用したmongodb接続-NodeJS

分類Dev

Nodejs(Express)を使用したMongoDB:ドキュメントの配列内のプロパティを削除します

分類Dev

NodeJSとExpress4.xを使用したセッション(req.session undefined)

分類Dev

ExpressとAngularを使用したmongodbデータベースの表形式表現

分類Dev

mongodbとnodejsを使用したリアルタイムWebアプリ

分類Dev

NodeJSとMongoDBを使用したクエリのフィルタリング

分類Dev

action-on-google api.aiは、nodejsとexpressを使用したPOSTリクエストで本文を送信しません

分類Dev

Nodejsを使用してMongoDBに画像をアップロードし、Express

分類Dev

MongoとExpressを使用したDocker

分類Dev

AngularUniversalとExpressを使用した低速TTFB

分類Dev

NodeJSとExpressを使用して構成を構造化する方法は?

分類Dev

nodeJSを使用したMongoDBensurIndexとcreateIndex?

分類Dev

NginxとNodejsを使用したHTTPS

分類Dev

角度とnodejsを使用したGraphQl

分類Dev

ExpressでNodeJSを使用してMongoDBからデータを取得する

分類Dev

ExpressとMongodbを使用したGraphqlクエリは正しく機能しませんか?

分類Dev

mongodbとExpressを使用してDockerと接続できません

分類Dev

nodejsを使用したmongoDBはデータを返します

分類Dev

nodejs、express、mongooseを使用したbluebird Promisiescrudの例

分類Dev

Expressルーティングを使用したNodeJSのRabbitMQ

分類Dev

Expressを使用したnodejs入力ストリーム

分類Dev

Express tohtmlを使用したnodejsでのレンダリング

Related 関連記事

  1. 1

    vhostとgreenlock-expressを使用したNodeJSサブドメイン

  2. 2

    ExpressとNodejsを使用した空のボディ

  3. 3

    Expressとnodejsを使用したランディングページ

  4. 4

    MongoDBとNodejsを使用した日付の挿入とクエリ

  5. 5

    winston-mongodbとexpress-winstonを使用したロギング

  6. 6

    mongodbとnodejsを使用したカテゴリ階層の集約

  7. 7

    NodeJSを使用したMongoDB平均集計

  8. 8

    async / awaitを使用したmongodb接続-NodeJS

  9. 9

    Nodejs(Express)を使用したMongoDB:ドキュメントの配列内のプロパティを削除します

  10. 10

    NodeJSとExpress4.xを使用したセッション(req.session undefined)

  11. 11

    ExpressとAngularを使用したmongodbデータベースの表形式表現

  12. 12

    mongodbとnodejsを使用したリアルタイムWebアプリ

  13. 13

    NodeJSとMongoDBを使用したクエリのフィルタリング

  14. 14

    action-on-google api.aiは、nodejsとexpressを使用したPOSTリクエストで本文を送信しません

  15. 15

    Nodejsを使用してMongoDBに画像をアップロードし、Express

  16. 16

    MongoとExpressを使用したDocker

  17. 17

    AngularUniversalとExpressを使用した低速TTFB

  18. 18

    NodeJSとExpressを使用して構成を構造化する方法は?

  19. 19

    nodeJSを使用したMongoDBensurIndexとcreateIndex?

  20. 20

    NginxとNodejsを使用したHTTPS

  21. 21

    角度とnodejsを使用したGraphQl

  22. 22

    ExpressでNodeJSを使用してMongoDBからデータを取得する

  23. 23

    ExpressとMongodbを使用したGraphqlクエリは正しく機能しませんか?

  24. 24

    mongodbとExpressを使用してDockerと接続できません

  25. 25

    nodejsを使用したmongoDBはデータを返します

  26. 26

    nodejs、express、mongooseを使用したbluebird Promisiescrudの例

  27. 27

    Expressルーティングを使用したNodeJSのRabbitMQ

  28. 28

    Expressを使用したnodejs入力ストリーム

  29. 29

    Express tohtmlを使用したnodejsでのレンダリング

ホットタグ

アーカイブ