MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tạo _id trên các tài liệu con trên mongoimport --jsonArray

Không.

Không phải để tạo một ObjectId, nhưng bạn có thể bao gồm một ObjectId trong JSON với ký hiệu sau:

{ "test" : { "$oid" : "5519e8ac996ef7f4636bfaec" } }

Điều này sẽ tạo ra một trường có tên là test với giá trị ObjectId("5519e8ac996ef7f4636bfaec") . Giá trị của khóa $oid cần phải là một ObjectId hợp lệ.

Có, đó là những gì bạn sẽ cần để tạo các giá trị ObjectId. Bạn có thể viết một tập lệnh nhỏ bằng cách sử dụng, ví dụ:trình điều khiển Python để thực hiện nhập và tạo ObjectId như một phần của nó hoặc sử dụng mongoimport, sau đó quét bộ sưu tập và cập nhật từng tài liệu con bằng ObjectId:

> db.test.find()
{ "_id" : ObjectId("5519e8ac996ef7f4636bfaec"), "a" : [ { "x" : 1 }, { "y" : 2 } ] } 
> db.test.find().forEach(function(doc) {
    for (var i = 0; i < doc.a.length; i++) {
        doc.a[i]._id = ObjectId()
    }
    db.test.update({ "_id" : doc._id }, doc)
} )

Lưu ý rằng, trừ khi có một số lý do cụ thể để có _id / ObjectId trên một tài liệu con, như _id là một tham chiếu đến một tài liệu khác, không cần thiết và cũng không nên đặt một ObjectId trên mọi tài liệu con.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tập bản sao khu vực MongoDb - nút chính trong mỗi khu vực?

  2. quá nhiều tệp đang mở trong máy chủ mgo go

  3. phép trừ trong truy vấn mongo không hoạt động?

  4. Mongoose Đã lưu _id'ss dưới dạng một chuỗi thay vì ObjectId

  5. Làm cách nào để xuất bộ sưu tập sang CSV trong MongoDB?