【发布时间】:2015-08-07 13:56:40
【问题描述】:
假设我有一个包含以下字段的 MongoDB 集合:
-
buildingID(字符串) -
projectID(字符串) -
coords(经度/纬度坐标数组)
我有很多记录,通过 projectID 属性分配给项目 A。现在我想
- 获取属于项目 A 的所有记录,
- 复制它们,这样
- 在新的记录中,除了
projectID之外的所有字段都和原来的一样, -
projectID等于项目 B。
我可以这样做:
Collection coll = getDb().getCollection("MyColl");
final Map<String,Object> query = new HashMap<>();
query.put("projectid", "projectA");
DBCursor cursor = coll.find(new BasicDBObject(query));
while (cursor.hasNext()) {
final BasicDBObject curRecord = cursor.next();
final BasicDBObject newRecord = clone(curRecord);
newRecord.set("projectid", "projectB");
coll.insert(newRecord);
}
clone 创建curRecord 的副本?
有没有更优雅的方法来做到这一点?我可以避免将数据从 MongoDB 中取出到 Java 中再返回到 MongoDB 中吗?
【问题讨论】:
-
我想你可能想在服务器上使用Aggregation Framework
标签: java mongodb mongodb-java