Về cơ bản, bạn sử dụng BasicDBObject cho ánh xạ khóa-giá trị và BasicDBList cho các đối tượng mảng. Đối với đối tượng trong câu hỏi của bạn, bạn sẽ làm như sau:
BasicDBList dbl = new BasicDBList();
dbl.add(new BasicDBObject("NNP",0));
dbl.add(new BasicDBObject("NN", 1));
BasicDBOBject outer=new BasicDBObject("image", "cab").append("tags", dbl);
Có một số phương pháp tiện lợi trong api để làm cho điều này bớt dài dòng hơn một chút.
Ánh xạ hoạt động như sau:
for: {"A":1} use: new BasicDBObject("A",1)
for: {"A":1, "B":2} use: new BasicDBObject("A",1).append("B",2)
for: {"A":{"B":2}} use: new BasicDBObject("A",new BasicDBObject("B",2))
for: {"A":["B","C"]} use:
BasicDBList dbl = new BasicDBList();
dbl.add("B");
dbl.add("C");
-> new BasicDBObject("A",dbl);