> 웹 프론트엔드 > JS 튜토리얼 > mongoDB 노드의 추가, 삭제, 수정 및 쿼리에 대해 학습

mongoDB 노드의 추가, 삭제, 수정 및 쿼리에 대해 학습

不言
풀어 주다: 2018-07-27 11:07:46
원래의
1520명이 탐색했습니다.

이 글은 mongoDB의 노드 추가, 삭제, 수정, 체크인에 대한 글 내용을 소개하는 글입니다. 참고할만한 가치가 있고 도움이 필요한 친구들에게 도움이 되었으면 좋겠습니다.

준비

먼저 노드에서 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 서비스를 활성화하는 것을 잊지 마세요.

Added

다음 코드는 데이터베이스 데모DB의 작업 컬렉션에 문서를 삽입하고 콘솔에 문서의 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}로 선언된 것은 데이터베이스 작업이 완료될 때까지 콜백 함수가 실행되지 않음을 나타냅니다.

Note

: 편의상 여기에서는 인증 모드가 활성화되어 있지 않으므로 로그인 URL에 사용자 이름과 비밀번호 없이 마음대로 추가, 삭제, 수정 및 확인할 수 있습니다. 하지만 프로덕션 환경에서는 인증 모드를 켜는 것을 잊지 마세요.

Delete

다음 코드는 데이터베이스 데모DB의 작업 컬렉션에서 프로젝트가 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

다음 코드는 데이터베이스 데모DB의 작업 컬렉션에서 프로젝트가 task1인 문서를 찾아서 업데이트합니다.

rrreee

참고: task1 프로젝트가 포함된 문서가 작업 컬렉션에 없으면 프로그램은 다음과 같이 어설션 오류를 발생시킵니다.

mongoDB 노드의 추가, 삭제, 수정 및 쿼리에 대해 학습

Check

다음 코드는 작업의 모든 문서를 찾습니다. 데이터베이스 decodb에 수집하고 콘솔에 인쇄합니다.

rrreee

find() 메소드는 모든 문서를 찾고, toArray()는 결과를 배열 형식으로 변환하고 프로그램을 실행합니다.

요약
🎜위의 네 가지 작은 프로그램은 약간 단순하고 누적되지 않습니다. 작은 단계가 수천 마일을 가져올 수는 없습니다. 기본 추가, 삭제, 수정 및 검색을 실제로 마스터했다면 복잡한 응용 프로그램을 마스터하는 것은 시간 문제일 뿐입니다. 🎜🎜관련 권장 사항: 🎜🎜🎜mongoDB의 사용자 및 권한 소개🎜🎜🎜🎜

위 내용은 mongoDB 노드의 추가, 삭제, 수정 및 쿼리에 대해 학습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿