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:
- 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
, - Bạn không cần
new BasicDBObject[].append[key, value]
sử dụng
0public 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]]]; }
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
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ể