2011-07-04 36 views
16

Tôi mới làm quen với mongodb và khi tôi thực hiện hướng dẫn cho Java & Mongodb. Tôi nhận thấy có put() và append() cho BasicDBObject và tôi đã xem xét API, put() kế thừa và nối thêm() là một built-in cho BasicDBObject. Có ai khác nhau, chẳng hạn như tốc độ truy cập? Cảm ơn!API Java MongoDB: put() vs append()

Trả lời

20

Từ BasicDBObject sources:

public BasicDBObject append(String key , Object val){ 
    put(key , val); 
    return this; 
} 

put() trả về giá trị trước đó, nếu có. append() gọi put() nội bộ và trả về bản thân BasicDBObject. Về cơ bản, append() là số fluent interface cho put(). Nó cho phép bạn làm điều gì đó như thế này:

BasicDBObject o = new BasicDBObject().append("One", 1).append("Two", 2).append("Three", 3); 

Theo như hiệu suất đi, JVM sẽ cho là phương pháp inline như append() nếu chúng được sử dụng thường xuyên đủ đâu đó. Từ kinh nghiệm của tôi và khá một chút hồ sơ, tuy nhiên, đó không phải lúc nào cũng đúng và bạn đang bị ràng buộc để đạt được một chút tốc độ bằng cách sử dụng trực tiếp put() và lưu JVM phỏng đoán.

Điều đó nói rằng, khả năng đọc mã phải luôn là ưu tiên. Chỉ cần viết mã của bạn khi bạn cảm thấy thoải mái, và điểm chuẩn/hồ sơ sau đó để tìm bất kỳ tối ưu hóa có thể. Tối ưu hóa sớm là một sự cám dỗ cần tránh bằng mọi giá ...