我是mongodb的新手,正在学习Java&Mongodb.我注意到BasicDBObject有put()和append(),我看了一下API,put()继承和append()是BasicDBObject的内置函数.有人知道有什么不同吗,比如访问速度?谢谢

推荐答案

BasicDBObject sources人中:

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

put()返回上一个值(如果适用).append()在内部调用put()并返回BasicDBObject实例本身.从本质上说,append()put()fluent interface.它允许你做这样的事情:

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

就性能而言,如果JVM在某个地方使用得足够频繁,它将有supposedly个内联方法,比如append()个.然而,根据我的经验和相当多的评测,这并不总是正确的,通过直接使用put()并避免JVM的猜测,您一定会获得一点速度.

也就是说,代码可读性应该始终是一个优先事项.只需编写您觉得合适的代码,然后进行基准测试/评测,以找到任何可能的优化.过早优化是一种诱惑,应该不惜一切代价避免...

Mongodb相关问答推荐

MongoDB$unionWith,如何 Select 特定文档

在MongoDB中获取所有帖子时如何获取相关用户信息

聚合管道可以用于更新数据库中的文档吗?

如何向所有文档添加一个字段,其中前 100 个文档的值为 1,接下来的 100 个文档的值为 2,依此类推?

MongoDB 将 JSON 字符串转换为数组[{obj1},{obj2}]的实际对象

CouchDB 或 MongoDB 中的哪一个适合我的需求?

Mongoid 有 Map/Reduce 吗?

mongodump 是否锁定数据库?

在 URL 中使用 ID(来自 mongo 的 ObjectId)是否安全?

MongoDB 批处理操作的最大大小是多少?

将 JSON 与 MongoDB 一起使用?

如何解决 ClassNotFoundException:com.mongodb.connection.BufferProvider?

如何根据其他字段添加条件模式?

REACT 获取发布请求

MongoDB - 聚合 - 获取数组中的唯一项

MongoDB 数据库,相当于 SELECT column1, column2 FROM tbl

如何在 MongoDB 的 $match 中使用聚合运算符(例如 $year 或 $dayOfMonth)?

一起使用 MongoDB 和 Neo4j

如何在 golang 和 mongodb 中通过 id 查找

MongoDb 连接被拒绝