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

MongoDB - Thêm vào một tập hợp và tăng dần

Nếu bạn sẵn sàng chuyển từ danh sách sang băm (đối tượng), bạn có thể thực hiện điều này một cách nguyên bản.

Từ tài liệu :"$inc ... trường gia số theo giá trị số nếu trường có trong đối tượng, nếu không thì đặt trường thành giá trị số. "

{ $inc : { field : value } }

Vì vậy, nếu bạn có thể cấu trúc lại vùng chứa và đối tượng của mình:

words: [
  {
    'word': 'foo',
    'count': 1
  },
  ...
]

tới:

words: {
  'foo': 1,
  'other_word: 2,
  ...
}

bạn có thể sử dụng thao tác update với:

{ $inc: { 'words.foo': 1 } }

sẽ tạo ra { 'foo': 1 } nếu 'foo' không tồn tại, foo tăng khác.

Ví dụ:

$ db.bar.insert({ id: 1, words: {} });
$ db.bar.find({ id: 1 })
[ 
  {   ...,   "words" : {     },   "id" : 1   }
]
$ db.bar.update({ id: 1 }, { $inc: { 'words.foo': 1 } });
$ db.bar.find({ id: 1 })
[ 
  {   ...,   "id" : 1,   "words" : {   "foo" : 1   }   }
]
$ db.bar.update({ id: 1 }, { $inc: { 'words.foo': 1 } });
$ db.bar.find({ id: 1 })
[ 
  {   ...,   "id" : 1,   "words" : {   "foo" : 2   }   }
]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để kiểm tra xem một tài liệu đã được chèn hoặc cập nhật khi sử dụng findOneAndUpdate?

  2. Lỗi trong khi mongoimport

  3. MongoDB:Không được quản trị viên ủy quyền thực thi lệnh

  4. MongoDB không sử dụng /etc/mongodb.conf sau khi tôi thay đổi dbpath

  5. Sự cố với @Qualifier