Hướng dẫn delete by id nodejs - xóa bởi id nodejs

Mã sau đây của tôi là để xóa một phần tử trong mảng bởi id của phần tử nhưng nó không hoạt động ai đó giúp tôi

Main.js

app.delete('/delete/:id', function (req, res) {

    fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
        data = JSON.parse(data);
        delete data["user" + req.params.id];
        console.log(data);
        fs.writeFile('users.json', JSON.stringify(data), function (err) {
            if(err){return console.log(err);}
        });
    });
});


var server = app.listen(8081, function () {
    var host = server.address().address
    var port = server.address().port
    console.log("Example app listening at http://%s:%s", host, port)
})

users.json

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]

Cách xóa bất kỳ phần tử nào ở trên bằng ID của nó bằng API Postman hoặc Rest Client

Lưu mã ở trên trong một tệp có tên là "demo_delete_many.js" và chạy tệp:

Code:

db.collection('posts', function(err, collection) {
   collection.remove({_id: '4d512b45cc9374271b00000f'});
});

Chạy "demo_delete_many.js"

C: \ Users \ Your Name> Node demo_delete_many.js63 gold badges603 silver badges457 bronze badges

Đối tượng kết quảOct 15, 2012 at 18:17

Phương thức

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]
3 trả về một đối tượng chứa thông tin về cách thực thi ảnh hưởng đến cơ sở dữ liệu.

var mongodb = require('mongodb');

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')});
});

Hầu hết các thông tin không quan trọng để hiểu, nhưng một đối tượng bên trong đối tượng được gọi là "kết quả" cho chúng ta biết nếu việc thực hiện có ổn không và có bao nhiêu tài liệu bị ảnh hưởng.Oct 15, 2012 at 18:39

Đối tượng kết quả trông như thế này:JohnnyHK

C: \ Users \ Your Name> Node demo_delete_many.js63 gold badges603 silver badges457 bronze badges

3

Đối tượng kết quả

Phương thức

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]
3 trả về một đối tượng chứa thông tin về cách thực thi ảnh hưởng đến cơ sở dữ liệu.

Hầu hết các thông tin không quan trọng để hiểu, nhưng một đối tượng bên trong đối tượng được gọi là "kết quả" cho chúng ta biết nếu việc thực hiện có ổn không và có bao nhiêu tài liệu bị ảnh hưởng.

var mongodb = require('mongodb');

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')}, function(err, results) {
       if (err){
         console.log("failed");
         throw err;
       }
       console.log("success");
    });
});

Đối tượng kết quả trông như thế này:Mar 14, 2016 at 7:31

Bạn có thể sử dụng đối tượng này để trả về số lượng tài liệu đã xóa:Bill Tarbell

Trả về số lượng tài liệu đã xóa:2 gold badges32 silver badges49 bronze badges

Console.log (obj.Result.n);

import { ObjectID } from 'mongodb'   

 

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new ObjectID('4d512b45cc9374271b00000f')});
});

Sẽ tạo ra kết quả này:Dec 19, 2020 at 6:21

Tại sao tôi không thể xóa bản ghi bằng _id?Len Joseph

Johnnyhk9 silver badges20 bronze badges

295K63 Huy hiệu vàng603 Huy hiệu bạc457 Huy hiệu đồng

var mongodb = require("mongodb");

Hỏi ngày 15 tháng 10 năm 2012 lúc 18:17

var ObjectID = require('mongodb').ObjectID;

Bạn cần chuyển giá trị

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]
0 dưới dạng ObjectID, không phải là một chuỗi:

var delete_id = request.params.id;//your id

 collection.deleteOne({_id: new mongodb.ObjectID(delete_id.toString())});

Đã trả lời ngày 15 tháng 10 năm 2012 lúc 18:39

JohnnyhkjohnnyhkDec 9, 2020 at 16:45

MongoDB hiện đã đánh dấu phương pháp xóa là không dùng nữa. Nó đã được thay thế bằng hai phương pháp riêng biệt: DeleteOne và Deletemany.

Dưới đây là hướng dẫn bắt đầu có liên quan của họ: https://docs.mongodb.org/getting-started/node/remove/Sep 7, 2021 at 10:43

Và đây là một mẫu nhanh:

const mongodb = require('mongodb');
const ObjectID = require('mongodb').ObjectID;
databaseName.collectionName.deleteOne({_id: new mongodb.ObjectID(id)} , (err)=>{
   if (err) throw err;
   console.log('Deleted'+id);
});

Đã trả lời ngày 14 tháng 3 năm 2016 lúc 7:31Feb 3 at 15:41

1


Bill Tarbellbill Tarbell

4.6282 Huy hiệu vàng32 Huy hiệu bạc49 Huy hiệu đồng

Với TypeScript, bạn có thể sử dụng nhập khẩu, thay vì yêu cầu toàn bộ thư viện

Đã trả lời ngày 19 tháng 12 năm 2020 lúc 6:21 If the query finds more than one document, only the first occurrence is deleted.

Thí dụ

Xóa tất cả các tài liệu là địa chỉ bắt đầu bằng chữ "O":

var Mongoclient = Yêu cầu ('MongoDB'). Mongoclient; var url = "MongoDB: // localhost: 27017/";
var url = "mongodb://localhost:27017/";

Mongoclient.connect (url, function (err, db) {& nbsp; if (err) ném err; & nbsp; var dbo = db.db ("mydb"); & nbsp; var myquery = {địa chỉ: /^o /}; & nbsp; dbo.collection ("Khách hàng"). Deletemany (MyQuery, Function (err, obj) + "tài liệu đã xóa"); & nbsp; & nbsp; & nbsp; db.close (); & nbsp;});});
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: 'Mountain 21' };
  dbo.collection("customers").deleteOne(myquery, function(err, obj) {
    if (err) throw err;
    console.log("1 document deleted");
    db.close();
  });
});

Chạy ví dụ »

Lưu mã ở trên trong một tệp có tên là "demo_delete.js" và chạy tệp:

Chạy "demo_delete.js"

C: \ Users \ Your Name> Node demo_delete.js

Điều này sẽ cung cấp cho bạn kết quả này:



Xóa nhiều

Để xóa nhiều tài liệu, hãy sử dụng phương thức

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]
3.

Tham số đầu tiên của phương thức

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]
3 là một đối tượng truy vấn xác định tài liệu nào sẽ xóa.

Thí dụ

Xóa tất cả các tài liệu là địa chỉ bắt đầu bằng chữ "O":

var Mongoclient = Yêu cầu ('MongoDB'). Mongoclient; var url = "MongoDB: // localhost: 27017/";
var url = "mongodb://localhost:27017/";

Mongoclient.connect (url, function (err, db) {& nbsp; if (err) ném err; & nbsp; var dbo = db.db ("mydb"); & nbsp; var myquery = {địa chỉ: /^o /}; & nbsp; dbo.collection ("Khách hàng"). Deletemany (MyQuery, Function (err, obj) + "tài liệu đã xóa"); & nbsp; & nbsp; & nbsp; db.close (); & nbsp;});});
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: /^O/ };
  dbo.collection("customers").deleteMany(myquery, function(err, obj) {
    if (err) throw err;
    console.log(obj.result.n + " document(s) deleted");
    db.close();
  });
});

Chạy ví dụ »

Lưu mã ở trên trong một tệp có tên là "demo_delete_many.js" và chạy tệp:

Chạy "demo_delete_many.js"

C: \ Users \ Your Name> Node demo_delete_many.js

Điều này sẽ cung cấp cho bạn kết quả này:


Đối tượng kết quả

Phương thức

[
    {
        "name": "alpha",
        "password": "123",
        "id": 4
    },
    {
        "name": "beta",
        "password": "123",
        "id": 5
    }
]
3 trả về một đối tượng chứa thông tin về cách thực thi ảnh hưởng đến cơ sở dữ liệu.

Hầu hết các thông tin không quan trọng để hiểu, nhưng một đối tượng bên trong đối tượng được gọi là "kết quả" cho chúng ta biết nếu việc thực hiện có ổn không và có bao nhiêu tài liệu bị ảnh hưởng.

Đối tượng kết quả trông như thế này:

Bạn có thể sử dụng đối tượng này để trả về số lượng tài liệu đã xóa:

Thí dụ

Trả về số lượng tài liệu đã xóa:

Console.log (obj.Result.n);

Sẽ tạo ra kết quả này: