2016-11-05 21 views
-1

我创建了一个集合,并在集合内部推送了一个json数组,一切正常,地址节点正确并创建为数组,但在其内部又形成一个数组。 以下是我的代码。MongoDB错误的json正在创建

   DB db = mongoClient.getDB("test"); 

      DBCollection col1 = db.getCollection("arrayTest"); 

      //item to be pushed 
      BasicDBObject newdoc = new BasicDBObject(); 
      newdoc.append("$push", new BasicDBObject().append("address",Arrays.asList(
        new BasicDBObject().append("street","bandra").append("pin", "100"), 
        new BasicDBObject().append("street","worli").append("pin", "200"), 
        new BasicDBObject().append("street","marine lines").append("pin", "300")))); 

      //where clause 
      BasicDBObject findQ = new BasicDBObject(); 
      findQ.append("one", "one"); 

      //update 
      col1.update(findQ, newdoc); 

下面是我的json的图像。

enter image description here

+1

@pravinsolonaki _CODE不能被复制和粘贴到编辑器和编译,以再现从problem_ [这里](http://meta.stackoverflow.com/questions/285551/why-可以-I-不上传图像-的代码上那么当-要价-A-问题/ 285557#285557) –

回答

0

推操作者将值作为该值是否阵列中的单个元件。

对每个修改器使用push作为单独的值插入。在图像

newdoc.append("$push", new BasicDBObject("address", new BasicDBObject("$each", Arrays.asList(
      new BasicDBObject().append("street","bandra").append("pin", "100"), 
      new BasicDBObject().append("street","worli").append("pin", "200"), 
      new BasicDBObject().append("street","marine lines").append("pin", "300"))));