Làm cách nào để chèn mảng trong MongoDB bằng nút JS?

Tuy nhiên, Bạn có thể chỉ định loại thuộc tính ({}) nó sẽ cho phép mọi thứ được lưu vào nó. Nếu bạn muốn một trong các đối tượng của mình hoặc toàn bộ lược đồ động thì bạn có thể xác định một lược đồ như thế này

var InventorySchema = Schema({
    created_at: {type: Date, default: Date.now },
    name: String,
    list: [{ }],
    invoiceTotal: Number,
    comment: String,
    dueDate: Date
})

thận trọng. Bạn sẽ không thể xác thực hoặc đánh máy bất kỳ biến động nào của mình

Tôi đang học mean stack và chỉ muốn thử chèn dữ liệu vào myphonebook db chỉ bằng cách sử dụng mongoclient, hiện tại tôi không muốn sử dụng cầy mangut

Làm cách nào để chèn một mảng đối tượng vào mongodb? . Tôi không chắc cách sử dụng yêu cầu. thân thể. địa chỉ hoặc yêu cầu. thân thể. con số

đây là mã của tôi bên trong mongoclient

router.post('/', (req,res)=>{

        var newEntry = {
            firstname: req.body.firstname,
            lastname: req.body.lastname,
            address:[
                // what's the right code here?
            ],
            mobile_numbers:[
                // what's the right code here
            ]
        }

        db.collection("data").insert(newEntry);
        res.redirect('/');

    }); 

và đây là cặp khóa và giá trị tôi muốn vào bên trong ff

  1. chỉ chuỗi cho địa chỉ
  2. mảng mobile_numbers

    {"con số". "1234567", "thuê bao". "kiểm tra"}

tôi đang sử dụng một hình thức cơ bản


    
    
    
    
    
    

- stackoverflow. com

ghi bàn. 1

Điều này sẽ hoàn toàn phụ thuộc vào cách bạn cấu trúc biểu mẫu HTML và cấu trúc/định dạng bạn đang gửi nó tới nút js API

Nếu bạn đang gửi chúng trong các trường riêng biệt, bạn có thể trực tiếp thêm chúng vào truy vấn theo cách sau

    mobile_numbers:[
         {number:req.body.num1,subscriber:req.body.sub1},
         {number:req.body.num2,subscriber:req.body.sub2}
    ]

Hoặc nếu bạn đang gửi dữ liệu trong một mảng, thì bạn có thể sử dụng forEach rồi tạo cấu trúc mong muốn rồi đính kèm nó vào truy vấn

Hoặc bạn chỉ có thể gửi dữ liệu theo cấu trúc mong muốn từ chính giao diện người dùng và chỉ cần đính kèm đối tượng vào truy vấn

Tôi muốn chèn mảng tài liệu vào mongodb bằng cách sử dụng nút. js nhưng trong khi chèn, nó chỉ chèn dữ liệu đầu tiên mà thôi

[{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}]

mã mẫu

collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
    if (err) {
        res.json({error : "database error"});
    }else {
       collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
          res.send(users);
       });
    }});

Nhưng nó vẫn chỉ chèn giá trị đầu tiên, bạn có thể vui lòng cho tôi biết cách chèn tất cả các tài liệu này không

Xin vui lòng đi qua bài viết của tôi và gợi ý cho tôi một số giải pháp

Giải pháp tốt nhất

Trong mã mẫu của bạn, bạn chỉ thêm 1 người dùng

collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
    if (err) {
        res.json({error : "database error"});
    }else {
       collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
          res.send(users);
       });
    }});
0 chèn hai tài liệu bằng tính năng ghi hàng loạt

Xem tài liệu tại đây. https. // tài liệu. mongodb. org/thủ công/tham khảo/phương pháp/db. thu thập. chèn/

Từ mẫu của bạn, bạn có thể làm

var data = [{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}];
db.collection('myCollection').insert(data)
.then(function() {
  return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
})
.then(function(res) {
  console.log(res);
});

Giải pháp liên quan

Javascript – Cách kiểm tra xem một mảng có chứa giá trị hay không trong JavaScript

Các trình duyệt hiện đại có , cái này thực hiện chính xác điều đó và bởi tất cả mọi người ngoại trừ IE

________số 8

Bạn cũng có thể sử dụng

collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
    if (err) {
        res.json({error : "database error"});
    }else {
       collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
          res.send(users);
       });
    }});
2, cách này ít trực tiếp hơn nhưng không yêu cầu polyfill cho các trình duyệt lỗi thời

router.post('/', (req,res)=>{

        var newEntry = {
            firstname: req.body.firstname,
            lastname: req.body.lastname,
            address:[
                // what's the right code here?
            ],
            mobile_numbers:[
                // what's the right code here
            ]
        }

        db.collection("data").insert(newEntry);
        res.redirect('/');

    }); 
0


Nhiều khung cũng cung cấp các phương pháp tương tự

  • jQuery.
    collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
        if (err) {
            res.json({error : "database error"});
        }else {
           collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
              res.send(users);
           });
        }});
    
    3
  • dấu gạch dưới. js. (cũng có bí danh là
    collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
        if (err) {
            res.json({error : "database error"});
        }else {
           collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
              res.send(users);
           });
        }});
    
    5 và
    collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
        if (err) {
            res.json({error : "database error"});
        }else {
           collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
              res.send(users);
           });
        }});
    
    6)
  • Bộ công cụ Dojo.
    collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
        if (err) {
            res.json({error : "database error"});
        }else {
           collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
              res.send(users);
           });
        }});
    
    7
  • Nguyên mẫu.
    collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
        if (err) {
            res.json({error : "database error"});
        }else {
           collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
              res.send(users);
           });
        }});
    
    8
  • MooTools.
  • MochiKit.
  • MS Ajax.
    collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
        if (err) {
            res.json({error : "database error"});
        }else {
           collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
              res.send(users);
           });
        }});
    
    8
  • mở rộng.
  • Lodash. (là
    var data = [{
      "userid": "5664",
      "name": "Zero 2679",
      "number": "1234562679",
      "status": "contact",
      "currentUserid": "Abcd"
     }, 
     {
      "userid": "5665",
      "name": "Zero 3649",
      "number": "1234563649",
      "status": "contact",
      "currentUserid": "Xyz"
    }];
    db.collection('myCollection').insert(data)
    .then(function() {
      return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
    })
    .then(function(res) {
      console.log(res);
    });
    
    4 trước 4. 0. 0)
  • Ramda.

Lưu ý rằng một số khung triển khai chức năng này dưới dạng hàm, trong khi các khung khác thêm chức năng vào nguyên mẫu mảng

Javascript – Cách nối một cái gì đó vào một mảng

Sử dụng phương thức

var data = [{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}];
db.collection('myCollection').insert(data)
.then(function() {
  return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
})
.then(function(res) {
  console.log(res);
});
6 để nối các giá trị vào cuối mảng

router.post('/', (req,res)=>{

        var newEntry = {
            firstname: req.body.firstname,
            lastname: req.body.lastname,
            address:[
                // what's the right code here?
            ],
            mobile_numbers:[
                // what's the right code here
            ]
        }

        db.collection("data").insert(newEntry);
        res.redirect('/');

    }); 
9


Bạn có thể sử dụng hàm

var data = [{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}];
db.collection('myCollection').insert(data)
.then(function() {
  return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
})
.then(function(res) {
  console.log(res);
});
7 để thêm nhiều giá trị vào một mảng trong một lần gọi


    
    
    
    
    
    

1


Cập nhật

Nếu bạn muốn thêm các mục của một mảng vào một mảng khác, bạn có thể sử dụng

var data = [{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}];
db.collection('myCollection').insert(data)
.then(function() {
  return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
})
.then(function(res) {
  console.log(res);
});
8


    
    
    
    
    
    

3

Cập nhật

Chỉ là một bổ sung cho câu trả lời này nếu bạn muốn thêm bất kỳ giá trị nào vào đầu một mảng (i. e. chỉ mục đầu tiên) thì bạn có thể sử dụng

var data = [{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}];
db.collection('myCollection').insert(data)
.then(function() {
  return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
})
.then(function(res) {
  console.log(res);
});
9 cho mục đích này


    
    
    
    
    
    

5

Nó cũng hỗ trợ nối thêm nhiều giá trị cùng một lúc giống như

console.log(['joe', 'jane', 'mary'].includes('jane')); //true
0


Cập nhật

Một cách khác với cú pháp ES6 là trả về một mảng mới với cú pháp trải rộng. Điều này khiến mảng ban đầu không thay đổi, nhưng trả về một mảng mới với các mục mới được thêm vào, phù hợp với tinh thần của lập trình chức năng

Làm cách nào để chèn mảng trong MongoDB bằng nút JS?

Để chèn nhiều tài liệu vào một bộ sưu tập trong MongoDB, chúng ta sử dụng phương thức insertMany() . Tham số đầu tiên của phương thức insertMany() là một mảng các đối tượng, chứa dữ liệu bạn muốn chèn.

Làm cách nào để chèn dữ liệu mảng trong MongoDB?

Nếu trường không có trong tài liệu cần cập nhật, $push sẽ thêm trường mảng có giá trị làm thành phần của nó . Nếu trường không phải là một mảng, hoạt động sẽ thất bại. Nếu giá trị là một mảng, $push sẽ thêm toàn bộ mảng dưới dạng một phần tử. Để thêm riêng từng phần tử của giá trị, hãy sử dụng công cụ sửa đổi $each với $push.

Làm cách nào để chèn nhiều dữ liệu vào MongoDB bằng nút js?

Bạn có thể chèn nhiều tài liệu bằng bộ sưu tập. phương thức insertMany() . insertMany() lấy một mảng tài liệu để chèn vào bộ sưu tập đã chỉ định. Bạn có thể chỉ định các tùy chọn bổ sung trong đối tượng tùy chọn được truyền dưới dạng tham số thứ hai của phương thức insertMany().

Làm cách nào để sử dụng mảng trong MongoDB?

Làm việc với mảng trong MongoDB .
Giới thiệu. .
Tạo và truy vấn tài liệu. .
Thêm một phần tử mảng. .
Cập nhật một phần tử mảng. .
Xóa một phần tử mảng. .
Thêm một Trường mới cho tất cả các Đối tượng trong Mảng. .
Cập nhật một phần tử mảng cụ thể dựa trên một điều kiện. .
Phần kết luận