Hướng dẫn how do i add a field to an existing collection in mongodb java? - làm cách nào để thêm trường vào bộ sưu tập hiện có trong mongodb java?

Tôi đã viết một bài kiểm tra JUnit để chứng minh rằng mã của bạn hoạt động:

@Test
public void shouldUpdateAnExistingDocumentWithANewKeyAndValue() {
    // Given
    String docID = "someId";
    collection.save(new BasicDBObject("_id", docID));
    assertThat(collection.find().count(), is(1));

    // When
    String key = "newKeyName";
    String value = "newKeyValue";
    addFieldWithValueToDoc(db.getName(), collection.getName(), docID, key, value);

    // Then
    assertThat(collection.findOne().get(key).toString(), is(value));
}

public void addFieldWithValueToDoc(String DBName, String collName, String docID, String key, String value) {
    BasicDBObject setNewFieldQuery = new BasicDBObject().append("$set", new BasicDBObject().append(key, value));
    mongoClient.getDB(DBName).getCollection(collName).update(new BasicDBObject().append("_id", docID), setNewFieldQuery);
}

Vì vậy, mã của bạn là chính xác, mặc dù tôi muốn chỉ ra một số nhận xét về phong cách sẽ giúp nó dễ đọc hơn:

  1. Các tham số và biến nên bắt đầu với một chữ cái chữ thường. DBName nên là dbName,
  2. Bạn không cần new BasicDBObject().append(key, value) sử dụng
    public void addFieldWithValueToDoc(String dbName, String collName, String docID, String key, String value) {
        mongoClient.getDB(dbName).getCollection(collName).update(new BasicDBObject("_id", docID),
                                                                 new BasicDBObject("$set", new BasicDBObject(key, value)));
    }
    
    0

Mã này làm điều tương tự như mã của bạn, nhưng ngắn hơn và đơn giản hơn:

public void addFieldWithValueToDoc(String dbName, String collName, String docID, String key, String value) {
    mongoClient.getDB(dbName).getCollection(collName).update(new BasicDBObject("_id", docID),
                                                             new BasicDBObject("$set", new BasicDBObject(key, value)));
}

Cách thêm trường mới vào tài liệu trong bộ sưu tập trong MongoDB

Nội dung của trang>

  • 1) Cách thêm trường mới vào tài liệu trong bộ sưu tập trong MongoDB>

1) Cách thêm trường mới vào tài liệu trong bộ sưu tập trong MongoDB>

1.1) Đầu tiên, chèn vào bộ sưu tập trong MongoDB.insert in collection in MongoDB.

> db.employee.insert ({id: 1, & nbsp; firstName: "Ankit"}))db.employee.insert({id : 1,  firstName:"ankit"})

Dòng trên sẽ tạo bộ sưu tập (bảng) (nếu bộ sưu tập đã tồn tại, nó sẽ chèn các bản ghi trong đó).

1.2) Bây giờ, hãy để bộ sưu tập nhân viên truy vấn của Lừa ở MongoDB>

> db.employee.find ()

> {"_id": ObjectID ("5869200EE26361C436D65EE9"), "id": 1, "FirstName": "Ankit"}5869200ee26361c436d65ee9"), "id" : 1, "firstName" : "ankit" }

2.1) Bây giờ, hãy để thêm trường lương trong tài liệu WHERE ID = 1>

> db.employee.update ({id: 1}, {$ set: {Mức lương: 1000}}))$set:{salary:1000}})

2.2) Bây giờ, hãy để một lần nữa truy vấn bộ sưu tập nhân viên trong MongoDB>

> db.employee.find ()

> {"_id": ObjectID ("5869200EE26361C436D65EE9"), "id": 1, "FirstName": "Ankit"}5869200ee26361c436d65ee9"), "id" : 1, "firstName" : "ankit", "salary" : 1000 }

2.1) Bây giờ, hãy để thêm trường lương trong tài liệu WHERE ID = 1>

> db.employee.update ({id: 1}, {$ set: {Mức lương: 1000}}))

2.2) Bây giờ, hãy để một lần nữa truy vấn bộ sưu tập nhân viên trong MongoDB>how to add new field in document in collection in MongoDb.

{"_id": ObjectID ("5869200EE26361C436D65EE9"), "ID": 1, "FirstName": "Ankit", "Mức lương": 1000}}

> db.employee.update ({id: 1}, {$ set: {Mức lương: 1000}}))$set:{salary:1000}})

2.2) Bây giờ, hãy để một lần nữa truy vấn bộ sưu tập nhân viên trong MongoDB>

{"_id": ObjectID ("5869200EE26361C436D65EE9"), "ID": 1, "FirstName": "Ankit", "Mức lương": 1000}}

Bây giờ, chúng ta có thể thấy trường lương đã được thêm vào tài liệu trong đó id = 1.

Bản tóm tắt -

Vì vậy, trong hướng dẫn Java cốt lõi này, chúng tôi đã học cách thêm trường mới vào tài liệu trong bộ sưu tập trong MongoDB.

Ví dụ - Điều này thêm trường Mức lương trong tài liệu WHERE ID = 1


Có bất kỳ nghi ngờ? Hoặc bạn thích hướng dẫn! Vui lòng bình luận trong phần dưới đây.


Để thay thế một tài liệu, sử dụng DB. thu thập. thay thế ().insert() method.

Làm thế nào thủ công dữ liệu trong MongoDB?

db.coll.insert(doc)

Where,

  • Kết nối với thể hiện MongoDB của bạn .. is the database.

  • Nhận cơ sở dữ liệu và bộ sưu tập. Chuyển sang cơ sở dữ liệu và bộ sưu tập bạn muốn làm việc. .... is the collection (name) in which you want to insert the document

  • Hiển thị kết quả của bạn. Nhiều hoạt động ghi trong MongoDB trả về một đối tượng kết quả có chứa thông tin về hoạt động .. is the document you want to insert.

Thí dụ

> use myDatabase()
switched to db myDatabase()
> db.createCollection(sample)
{ "ok" : 1 }
> db.sample.insert({name:"Ram", age:26, city:"Hyderabad"})
WriteResult({ "nInserted" : 1 })

Kiểm tra kết quả của bạn ..

Bạn có thể chèn một tài liệu vào một bộ sưu tập hiện có trong MongoDB bằng phương thức chèn ().insertOne() method of the com.mongodb.client.MongoCollection interface. This method accepts a document (object) representing the document you want to insert as a parameter.

Cú pháp

  • DB là cơ sở dữ liệu.

  • Thêm phụ thuộc sau vào tệp POM.XML của dự án Java của bạn.

Thí dụ


   org.mongodb
   mongo-java-driver
   3.12.2
  • Tạo một khách hàng MongoDB bằng cách khởi tạo lớp Mongoclient.

  • Kết nối với cơ sở dữ liệu bằng phương thức getDatabase ().getDatabase() method.

  • Chuẩn bị tài liệu để được chèn.

  • Nhận đối tượng của bộ sưu tập mà bạn muốn chèn tài liệu, sử dụng phương thức getCollection ().getCollection() method.

  • Gọi phương thức INSERTONE () bằng cách truyền tài liệu (được tạo ở trên) dưới dạng tham số.

Thí dụ

import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.MongoClient;
public class InsertingDocument {
   public static void main( String args[] ) {
      //Creating a MongoDB client
      MongoClient mongo = new MongoClient( "localhost" , 27017 );
      //Connecting to the database
      MongoDatabase database = mongo.getDatabase("myDatabase");
      //Creating a collection
      database.createCollection("students");
      //Preparing a document
      Document document = new Document();
      document.append("name", "Ram");
      document.append("age", 26);
      document.append("city", "Hyderabad");
      //Inserting the document into the collection
      database.getCollection("students").insertOne(document);
      System.out.println("Document inserted successfully");
   }
}

   org.mongodb    mongo-java-driver    3.12.2

Document inserted successfully

Hướng dẫn how do i add a field to an existing collection in mongodb java? - làm cách nào để thêm trường vào bộ sưu tập hiện có trong mongodb java?

Tạo một khách hàng MongoDB bằng cách khởi tạo lớp Mongoclient.

  • Kết nối với cơ sở dữ liệu bằng phương thức getDatabase ().
  • Chuẩn bị tài liệu để được chèn.
  • Nhận đối tượng của bộ sưu tập mà bạn muốn chèn tài liệu, sử dụng phương thức getCollection ().
  • Gọi phương thức INSERTONE () bằng cách truyền tài liệu (được tạo ở trên) dưới dạng tham số.
  • Đầu ra
  • Cập nhật vào ngày 10 tháng 4 năm 2020 08:15:34
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để chèn nhiều tài liệu vào bộ sưu tập MongoDB bằng Java?
  • Làm thế nào để chèn các tài liệu mới vào một bộ sưu tập MongoDB trong cơ sở dữ liệu của bạn?
  • Làm thế nào để xóa một tài liệu MongoDB bằng Java?
  • Làm thế nào để cập nhật một tài liệu hiện có trong bộ sưu tập MongoDB bằng Java?
  • Làm thế nào để tạo một bộ sưu tập MongoDB bằng Java?
  • Làm thế nào để thả một bộ sưu tập MongoDB bằng Java?
  • Làm thế nào để chèn một tài liệu có ngày trong MongoDB?
  • Nhận tài liệu hàng đầu nhất từ ​​bộ sưu tập MongoDB
  • Truy cập các giá trị mảng trong bộ sưu tập MongoDB để tìm nạp một tài liệu cụ thể

Làm thế nào tôi có thể chèn một trường mới vào tài liệu thu thập MongoDB hiện có?

Để thêm trường hoặc trường vào các tài liệu nhúng (bao gồm các tài liệu trong mảng) sử dụng ký hiệu dấu chấm. Xem ví dụ. Để thêm một phần tử vào một trường mảng hiện có với $ addfields, hãy sử dụng với $ concatarrays.use the dot notation. See example. To add an element to an existing array field with $addFields , use with $concatArrays .

Làm thế nào để bạn cập nhật một bộ sưu tập trong MongoDB Java?

Bạn có thể cập nhật một tài liệu duy nhất bằng phương thức UpdateDe () trên đối tượng MongoCollection.Phương thức chấp nhận một bộ lọc phù hợp với tài liệu bạn muốn cập nhật và câu lệnh cập nhật hướng dẫn trình điều khiển cách thay đổi tài liệu phù hợp.using the updateOne() method on a MongoCollection object. The method accepts a filter that matches the document you want to update and an update statement that instructs the driver how to change the matching document.

Làm thế nào để bạn cập nhật một lĩnh vực trong bộ sưu tập MongoDB?

Shell MongoDB cung cấp các phương pháp sau để cập nhật các tài liệu trong một bộ sưu tập:..
Để cập nhật một tài liệu duy nhất, hãy sử dụng DB.thu thập.Cập nhật ().
Để cập nhật nhiều tài liệu, hãy sử dụng DB.thu thập.Updatemany ().
Để thay thế một tài liệu, sử dụng DB.thu thập.thay thế ().

Làm thế nào thủ công dữ liệu trong MongoDB?

Procedure..
Kết nối với thể hiện MongoDB của bạn ..
Nhận cơ sở dữ liệu và bộ sưu tập.Chuyển sang cơ sở dữ liệu và bộ sưu tập bạn muốn làm việc.....
Hiển thị kết quả của bạn.Nhiều hoạt động ghi trong MongoDB trả về một đối tượng kết quả có chứa thông tin về hoạt động ..
Kiểm tra kết quả của bạn ..