ホームページ  >  記事  >  ウェブフロントエンド  >  mongoDBのノードの追加、削除、変更、クエリについて学ぶ

mongoDBのノードの追加、削除、変更、クエリについて学ぶ

不言
不言オリジナル
2018-07-27 11:07:461469ブラウズ

この記事は、mongoDB のノードの追加、削除、変更、チェックインに関する記事の内容を紹介するものであり、参考になるものであり、困っている友人に役立つことを願っています。

準備

まず、nodeでmongoDBを使用するには、MongoDBドライバーをインストールする必要があります。コマンドは次のとおりです: npm install mongodb --savenpm install mongodb --save
github地址:node-mongodb-native

同时,记得开启mongoDB服务。

下面代码将在数据库demodb中tasks集合里面插入了一条文档,并且在控制台打印出了该文档的id。

const MongoClient = require('mongodb').MongoClient

const assert = require('assert')
const url = 'mongodb://localhost:27017'
const dbName = 'demodb'

// 增
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err)
  console.log("Connected successfully to server")

  const db = client.db(dbName)
  var tasks = db.collection('tasks') // 没有则创建
  tasks.insertOne(
    {
      "project": "task1",
      "description": "task1 description."
    },
    {safe: true},
    function(err, documents) {
      if (err) throw err;
      console.log(documents.insertedId);
    }
  );

  client.close()
})

运行程序,发现在控制台打印出了如下结果

Connected successfully to server
5b59d53ae3d895184824586b

这个返回的5b59d53ae3d895184824586bgithubアドレス:node-mongodb-native

同時に、mongoDB サービスを忘れずに有効にしてください。

追加

次のコードは、データベース Demondb のタスク コレクションにドキュメントを挿入し、ドキュメントの ID をコンソールに出力します。

// 删
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err)
  console.log("Connected successfully to server")

  const db = client.db(dbName)
  var tasks = db.collection('tasks')
  tasks.deleteOne(
    {
      "project": "task1"
    },
    function(err, result) {
      assert.equal(err, null);
      assert.equal(1, result.result.n);
      console.log("Removed the document");
    }
  );

  client.close()
})

プログラムを実行すると、次の結果がコンソールに表示されることがわかります

// 改
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err)
  console.log("Connected successfully to server")

  const db = client.db(dbName)
  var tasks = db.collection('tasks')
  tasks.updateOne(
    {
      "project": "task1"
    },
    { $set: { "project" : "task999" } },
    {safe: true},
    function(err, result) {
      assert.equal(err, null);
      assert.equal(1, result.result.n);
      console.log("Updated the document");
    }
  );

  client.close()
})
返された 5b59d53ae3d895184824586b は MongoDB のドキュメント識別子であり、その本質はバイナリ JSON (つまり BSON ) です。 , BSON は MongoDB がデータ交換に使用する主なデータ形式であり、MongoDB サーバーは JSON の代わりに BSON を使用してデータを交換します。ほとんどの場合、スペース効率が高く、解析も高速です。

宣言された {safe: true} は、データベース操作が完了するまでコールバック関数が実行されないことを示します。

: 便宜上、ここでは認証モードは有効になっていません。そのため、ログイン URL にユーザー名とパスワードを入力しなくても、自由に追加、削除、変更、確認を行うことができます。ただし、運用環境では、忘れずに認証モードをオンにしてください。

削除

次のコードは、データベース Demondb 内のタスク コレクション内でプロジェクトが task1 であるドキュメントを検索し、削除します。 mongoDBのノードの追加、削除、変更、クエリについて学ぶ

// 查
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err)
  console.log("Connected successfully to server")

  const db = client.db(dbName)
  var tasks = db.collection('tasks')
  tasks.find().toArray((err, docs) => {
    console.log(docs)
    assert.equal(null, err) // err 不等于null, 则在控制台打印err
    // assert.equal(3, docs.length) // 记录不等于3条, 则在控制台打印记录条数
  })
  client.close()
})
注: タスク コレクションにプロジェクト task1 を持つドキュメントが複数ある場合、見つかった最初の日のドキュメントのみが削除されます。 Change

次のコードは、データベース Demondb 内のタスク コレクション内でプロジェクトが task1 であるドキュメントを検索し、更新します。

rrreee

注: プロジェクト task1 のドキュメントがタスク コレクションに見つからない場合、プログラムは次のようにアサーション エラーをスローします:

mongoDBのノードの追加、削除、変更、クエリについて学ぶ

Check

次のコードは、タスク内のすべてのドキュメントを検索します。データベース Demondb 内のコレクションを取得し、コンソールに出力します。

rrreee

find() メソッドはすべてのドキュメントを検索し、 toArray() は結果を配列形式に変換し、プログラムを実行します。 結果は次のとおりです。基本的な追加、削除、変更、検索をしっかりマスターすれば、複雑なアプリケーションをマスターするのは時間の問題です。

関連する推奨事項:

mongoDB のユーザーと権限の概要

🎜

以上がmongoDBのノードの追加、削除、変更、クエリについて学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。