使用Java将数据插入mongodb

时间:2019-08-09 03:44:31

标签: java mongodb

我正在尝试使用Java将数据插入MongoDB,但是在尝试编译代码时出现错误。我不知道是什么原因引起的错误。我想添加一个新书条目。

error message:
 required: String,Object
  found: List<Document>
  reason: actual and formal argument lists differ in length
UseMongoDB.java:61: error: method put in class Document cannot be applied to given types;
book.put(publishers);

private MongoCollection<Document> books = db.getCollection("books");

	void insertanewbook() {
		
		
		Document book = new Document();
		book.put("title", "test");
	      	book.put("category","test");
                book.put("price",12.3);

                List<Document> authors = new ArrayList<Document>();
		Document author = new Document();
                author.put("first_name","jonn");
                author.put("last_name","james");
                author.put("country","t");
                author.put("website","www.test.com");
		authors.add(author);
		book.put(authors);

		List<Document> publishers = new ArrayList<Document>();
		Document publisher = new Document();
                publisher.put("publish_date",new Date());
                publisher.put("name","test");
                publisher.put("country","test");
		publisher.put("website","www.test.com");
		publishers.add(publisher);
		book.put(publishers);
                
		books.insertOne(book);

	}

1 个答案:

答案 0 :(得分:1)

从您发布的错误消息中...

reason: actual and formal argument lists differ in length

换句话说,方法put需要两个参数,而您仅提供了一个。在您发布的代码中,对方法put()的调用中缺少。只需添加相关密钥,例如

book.put("publishers", publishers);