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

Thêm trường mới vào mọi tài liệu trong bộ sưu tập MongoDB

Giống như trường cập nhật bộ sưu tập hiện có, $set sẽ thêm một trường mới nếu trường được chỉ định không tồn tại.

Hãy xem ví dụ này:

> db.foo.find()
> db.foo.insert({"test":"a"})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> item = db.foo.findOne()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> db.foo.update({"_id" :ObjectId("4e93037bbf6f1dd3a0a9541a") },{$set : {"new_field":1}})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "new_field" : 1, "test" : "a" }

CHỈNH SỬA:

Trong trường hợp bạn muốn thêm new_field vào tất cả bộ sưu tập của mình, bạn phải sử dụng bộ chọn trống và đặt nhiều cờ thành true (tham số cuối cùng) để cập nhật tất cả các tài liệu

db.your_collection.update(
  {},
  { $set: {"new_field": 1} },
  false,
  true
)

CHỈNH SỬA:

Trong ví dụ trên, 2 trường cuối cùng false, true chỉ định upsertmulti cờ.

Nâng cấp: Nếu được đặt thành true, hãy tạo tài liệu mới khi không có tài liệu nào phù hợp với tiêu chí truy vấn.

Đa: Nếu được đặt thành true, hãy cập nhật nhiều tài liệu đáp ứng tiêu chí truy vấn. Nếu được đặt thành false, hãy cập nhật một tài liệu.

Điều này dành cho các phiên bản versions trước 2.2 . Đối với các phiên bản mới nhất, truy vấn được thay đổi một chút

db.your_collection.update({},
                          {$set : {"new_field":1}},
                          {upsert:false,
                          multi:true}) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoid Group By hoặc MongoDb group by in rails

  2. spring-data-mongo - tham số truy vấn tùy chọn?

  3. Regex cho MongoDB ObjectID

  4. Tối ưu hóa môi trường Linux của bạn cho MongoDB

  5. Theo dõi hiệu suất MongoDB?