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
- chỉ chuỗi cho địa chỉ
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. comghi 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ạtXem 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ờirouter.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['/'];
}];
0Nhiều khung cũng cung cấp các phương pháp tương tự
- jQuery.
3collection.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]; }]; }}];
- dấu gạch dưới. js. [cũng có bí danh là
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]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]; }]; }}];
- Bộ công cụ Dojo.
7collection.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]; }]; }}];
- Nguyên mẫu.
8collection.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]; }]; }}];
- MooTools.
- MochiKit.
- MS Ajax.
8collection.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]; }]; }}];
- mở rộng.
- Lodash. [là
4 trước 4. 0. 0]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]; }];
- 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ảngrouter.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['/'];
}];
9Bạ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
1Cậ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
3Cậ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
5Nó 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
0Cậ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