MongoDB Java API: put() vs append()

2022-09-02 10:16:13

我是mongodb的新手,当我完成Java和Mongodb的教程时。我注意到BasicDBObject有put()和append(),我看了一下API,put()inherit和append()是BasicDBObject的内置内容。有没有人有什么不同,例如访问速度?谢谢!


答案 1

来自 BasicDBObject 源代码

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

put()返回上一个值(如果适用)。 在内部调用并返回 BasicDBObject 实例本身。从本质上讲,是 一个更流畅的界面。它允许您执行如下操作:append()put()append()put()

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

就性能而言,JVM应该会内联方法就像它们在某个地方使用得足够频繁一样。然而,根据我的经验和相当多的分析,这并不总是正确的,通过直接使用并节省JVM的猜测,你一定会获得一点速度。append()put()

也就是说,代码可读性应始终是重中之重。只需在感觉舒适的时候编写代码,然后进行基准测试/配置文件以找到任何可能的优化。过早优化是一种诱惑,应该不惜一切代价避免...


答案 2