2015-04-21 24 views
6

Tôi đang có DB có tên là "Dự án" và bộ sưu tập có tên là "mẫu", sau đó tôi đã chèn một tệp JSON bằng cách sử dụng lệnh mongoimport.Cập nhật hoặc cập nhật tệp Mongoimport json ..?

Bây giờ tôi đã chỉnh sửa cùng một tệp JSON. Vì vậy, nếu muốn nhập cùng một tệp JSON vào Bộ sưu tập thì tôi đang đối mặt với vấn đề như nhiều phiên bản được tạo và không có cập nhật nào không diễn ra.

Có cách nào để cập nhật hoặc ghi đè dữ liệu đã có trong Mongodb bằng lệnh mongoimport không?

Lưu ý rằng tôi cũng đã cố gắng sử dụng --mode=upsert cờ:

./mongoimport --db Project --collection sample --mode=upsert --file /home/rule.json 

Trả lời

9

Đối với MongoDB v3.x,

--mode=upsert 
4

Mặc định hành vi nói bỏ qua nếu đã tồn tại nên theo mặc định nó sẽ không ghi đè lên dữ liệu hiện có.

Nhưng bạn có thể cập nhật nó bằng cách sử dụng cờ --upsert.

+0

ok, tôi muốn xóa và nhập lại vì vậy nếu tôi sử dụng 'upsert' it'si tốt cho tôi? – Mercer

+0

bạn có thể sử dụng upsert sẽ ghi đè lên hiện tại. (xóa + nhập = ghi đè bằng dữ liệu mới.) Hãy cho tôi biết nếu bạn cần điều gì đó khác. –

+1

không hoạt động tôi sử dụng - upert một kết thúc của dòng lệnh của tôi nhưng khi tôi làm một db.stats() số lượng các đối tượng tăng – Mercer

0

--drop cờ cũng có thể được sử dụng cùng với lệnh mongoimport ghi đè lên/cập nhật các dữ liệu hiện có.

--drop 


./mongoimport --db Project --collection sample --drop --file /home/UCSC_rule.json 

Tôi đưa giải pháp này bởi vì tôi đã cố gắng sử dụng --upsert cờ nhưng tôi không thể nhìn thấy bất kỳ thay đổi trong các dữ liệu hiện tại thay vì thể hiện mới đã được tạo ra.

Các vấn đề liên quan