java - MongoDB:如何实现 PUT 方法来保存对象?

标签 java mongodb database

http://www.mongodb.org/display/DOCS/Java+-+Saving+Objects+Using+DBObject

此页面是关于在 MongoDB 中保存和检索对象的。但实现 DBObject 后,我​​必须重写一堆方法。有谁知道如何实现 PUT 方法,以便“myTweet.put(“user”, userId);”可以工作吗?

最佳答案

而不是实现 DBObject只需延长 BasicDBObject

class Tweet extends BasicDBObject {
  public Tweet() {
    super();
  }
  public Tweet(BasicDBObject base) {
    super();
    this.putAll(base);
  }
}

Tweet myTweet = new Tweet();
myTweet.put("user", userId);

BasicDBObject实现DBObject因此,扩展它的类可以传递给任何需要实现 DBObject 的类的函数。如果您想实现该接口(interface),则必须提供一些容器类来存储推文属性 BasicDBObject 通过扩展另一个名为 BasicBSONObject 的类来实现此目的,您可以在 source 中看到该类。 ,一个简单的实现如下所示:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.bson.BSONObject;

import com.mongodb.DBObject;


public class Tweet implements DBObject {
    private Map<String, Object> data;
    private boolean partial;

    public Tweet() {
        data = new HashMap<>();
        partial = false;
    }

    @Override
    public Object put(String key, Object value) {
        return data.put(key, value);
    }

    @SuppressWarnings("unchecked")
    @Override
    public void putAll(BSONObject o) {
        data.putAll(o.toMap());
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    public void putAll(Map m) {
        data.putAll(m);
    }

    @Override
    public Object get(String key) {
        return data.get(key);
    }

    @SuppressWarnings("rawtypes")
    @Override
    public Map toMap() {
        return data;
    }

    @Override
    public Object removeField(String key) {
        return data.remove(key);
    }

    @Override
    public boolean containsKey(String key) {
        return data.containsKey(key);
    }

    @Override
    public boolean containsField(String key) {
        return data.containsKey(key);
    }

    @Override
    public Set<String> keySet() {
        return data.keySet();
    }

    @Override
    public void markAsPartialObject() {
        partial = true;
    }

    @Override
    public boolean isPartialObject() {
        return partial;
    }
}

此类实现DBObject并使用HashMap来存储其属性。

关于java - MongoDB:如何实现 PUT 方法来保存对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578051/

相关文章:

collections - MongoDB - 从上限集合中捕获丢弃的对象

java - 使用 java 配置 Api

java - 如何告诉 NetBeans 使用库的 JAR 的最新可用版本?

php - 如何从 .ns 文件中查看 mongodb 数据

php - mysql 使用 äüß 进行 json 编码

c# - Visual C# 创建数据库路径,使其在不同的 PC 上运行

c# - EF 核心实体数据访问中的强制转换无效

java - 基于嵌套路径对属性进行排序的 Hibernate 查询

java - 将 DICOM 标签解析为 ArrayList<String>

javascript - 从 Node HTTP 请求中运行的算法需要更长的时间来运行