Java 如何在mongodb中存储阵列?

Java 如何在mongodb中存储阵列?,java,mongodb,Java,Mongodb,我想使用java在mongoDB集合中存储一个简单的纬度和经度数组,我使用以下代码,但我的“loc”数组始终为空: BasicDBObject doc = new BasicDBObject(); //doc.put("key " , r.getKey()); doc.put("category" , r.getKey()); doc.put("type" , r.getValue()); BasicDBObject latlon = new BasicDBObject(); ArrayL

我想使用java在mongoDB集合中存储一个简单的纬度和经度数组,我使用以下代码,但我的“loc”数组始终为空:

BasicDBObject doc = new BasicDBObject();
//doc.put("key " , r.getKey());
doc.put("category" , r.getKey());
doc.put("type" , r.getValue());

BasicDBObject latlon = new BasicDBObject();


ArrayList<Float> aLatLong = new ArrayList<Float>();

{




    Float fLat = Float.parseFloat(r.getLatitude());
    Float fLon = Float.parseFloat(r.getLongitude());
    aLatLong.add(fLat);
    aLatLong.add(fLon);

    latlon.put("lat" , fLat);
    latlon.put("lon" , fLon);
}


doc.put( "loc" , aLatLong);
BasicDBObject doc=new BasicDBObject();
//doc.put(“key”,r.getKey());
doc.put(“category”,r.getKey());
doc.put(“type”,r.getValue());
BasicDBObject latlon=新的BasicDBObject();
ArrayList aLatLong=新的ArrayList();
{
Float fLat=Float.parseFloat(r.getLatitude());
Float fLon=Float.parseFloat(r.getLongitude());
添加(平的);
添加(fLon);
latlon.put(“lat”,扁平);
latlon.put(“lon”,fLon);
}
put文件(“loc”,阿拉特朗);
但当我根本不使用ArrayList并尝试将latlon存储到“loc”中时,它会显示数据,但不再是数组


如何在mongoDB中保存一个简单数组?

您需要做的就是:

BasicDBObject doc = new BasicDBObject();

doc.put("category" , r.getKey());
doc.put("type" , r.getValue());

List<Float> aLatLong = new ArrayList<Float>();

Float fLat = Float.parseFloat(r.getLatitude());
Float fLon = Float.parseFloat(r.getLongitude());
aLatLong.add(fLat);
aLatLong.add(fLon);

doc.put( "loc" , aLatLong);
BasicDBObject doc=new BasicDBObject();
doc.put(“category”,r.getKey());
doc.put(“type”,r.getValue());
List aLatLong=new ArrayList();
Float fLat=Float.parseFloat(r.getLatitude());
Float fLon=Float.parseFloat(r.getLongitude());
添加(平的);
添加(fLon);
put文件(“loc”,阿拉特朗);

现在使用mongodb的insert方法保存数据库对象。

您只需执行以下操作:

BasicDBObject doc = new BasicDBObject();

doc.put("category" , r.getKey());
doc.put("type" , r.getValue());

List<Float> aLatLong = new ArrayList<Float>();

Float fLat = Float.parseFloat(r.getLatitude());
Float fLon = Float.parseFloat(r.getLongitude());
aLatLong.add(fLat);
aLatLong.add(fLon);

doc.put( "loc" , aLatLong);
BasicDBObject doc=new BasicDBObject();
doc.put(“category”,r.getKey());
doc.put(“type”,r.getValue());
List aLatLong=new ArrayList();
Float fLat=Float.parseFloat(r.getLatitude());
Float fLon=Float.parseFloat(r.getLongitude());
添加(平的);
添加(fLon);
put文件(“loc”,阿拉特朗);
现在使用mongodb的insert方法保存数据库对象。

试试这个

BasicDBObject doc = new BasicDBObject();
//doc.put("key " , r.getKey());
doc.put("category" , r.getKey());
doc.put("type" , r.getValue());

java.util.Map<String,Float> latLongMap = new java.util.HashMap<String,Float>();
latLongMap.put("lat" , Float.parseFloat(r.getLatitude());
latLongMap.put("lon" , Float.parseFloat(r.getLongitude());

doc.put( "location" , latLongMap);
BasicDBObject doc=new BasicDBObject();
//doc.put(“key”,r.getKey());
doc.put(“category”,r.getKey());
doc.put(“type”,r.getValue());
java.util.Map latLongMap=new java.util.HashMap();
latLongMap.put(“lat”,Float.parseFloat(r.getLatitude());
latLongMap.put(“lon”,Float.parseFloat(r.getLongitude());
文件放置(“位置”,latLongMap);
这将存储一个lat-long的json。另外,如果您想将它们存储为数组,这也是可能的,但我建议您将它们存储为这样。

试试这个

BasicDBObject doc = new BasicDBObject();
//doc.put("key " , r.getKey());
doc.put("category" , r.getKey());
doc.put("type" , r.getValue());

java.util.Map<String,Float> latLongMap = new java.util.HashMap<String,Float>();
latLongMap.put("lat" , Float.parseFloat(r.getLatitude());
latLongMap.put("lon" , Float.parseFloat(r.getLongitude());

doc.put( "location" , latLongMap);
BasicDBObject doc=new BasicDBObject();
//doc.put(“key”,r.getKey());
doc.put(“category”,r.getKey());
doc.put(“type”,r.getValue());
java.util.Map latLongMap=new java.util.HashMap();
latLongMap.put(“lat”,Float.parseFloat(r.getLatitude());
latLongMap.put(“lon”,Float.parseFloat(r.getLongitude());
文件放置(“位置”,latLongMap);

这将存储一个lat-long的json。如果您想将它们存储为数组,这也是可能的,但我建议您将它们存储为数组。

BasicDBObject内部知道如何序列化Iterable的任何实例。(因此,列表将正确序列化并存储在mongo中)我在上面的例子中也做了同样的事情!!!而且我也将你的代码片段复制到我的代码中,但它不起作用。在你尝试代码后,mongo数据库中的数组是否为空?嘿,它对我起作用了…你能发布find()方法的输出JSON吗。BasicDBObject内部知道如何序列化Iterable的任何实例。(因此,列表被正确序列化并存储在mongo中)我在上面的示例中也做了同样的事情!!!而且我将您的代码片段复制到我的代码中,但它不起作用。在您尝试代码后,mongo数据库中的数组是否为空?嘿,它对我有效…您可以发布find()方法的输出JSON吗。