Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring引导数据mongodb中的GeoJsonPoint抛出错误_Java_Mongodb_Spring Boot - Fatal编程技术网

Java spring引导数据mongodb中的GeoJsonPoint抛出错误

Java spring引导数据mongodb中的GeoJsonPoint抛出错误,java,mongodb,spring-boot,Java,Mongodb,Spring Boot,我发现Spring引导数据MongoDB有问题 我在下面用dto附加了我的代码。每次尝试使用GeoJsonPoint对象插入新文档时,我都会遇到com.mongodb.WriteConcernException:写入失败,错误代码为16804,错误消息为“预期位置对象,位置数组格式不正确”异常 import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.geo.GeoJso

我发现Spring引导数据MongoDB有问题

我在下面用dto附加了我的代码。每次尝试使用GeoJsonPoint对象插入新文档时,我都会遇到
com.mongodb.WriteConcernException:写入失败,错误代码为16804,错误消息为“预期位置对象,位置数组格式不正确”
异常

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.index.GeoSpatialIndexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

@Document(collection = "collection_2")
public class SingleBusStop {

    @Id
    private String id;

    @GeoSpatialIndexed
    private GeoJsonPoint location;

    private DayType dayType;

    private String lineNumber;

    //getters, setters

}
我在同一个项目中得到了一些其他的集合,在那里我插入了一些没有问题的数据(也使用GeoJsonPoint)。由于某些原因,我无法将数据插入集合2。我正在使用Mongo 3.4.2。我的pom.xml如下所示:

pl.server.map
乌提尔斯
1.0-快照
org.apache.maven.plugins
maven编译器插件
1.8
1.8
org.springframework.boot
springbootmaven插件
org.springframework.boot
spring启动程序父级
1.5.0.1发布
公用网络
公用网络
3.5
org.apache.poi
poi ooxml
3.15
org.springframework.boot
springbootstarter缓存
org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序数据mongodb
com.google.code.gson
格森
2.7
朱尼特
朱尼特
4.12
测试
公地io
公地io
2.4
org.apache.commons
公共空间
1.4
公地郎
公地郎
2.6

更新

@地理空间索引

默认情况下为
2d
索引,为避免出现问题,必须将其设置为
2dsphere
-如果出现此问题,只需在注释中切换索引类型:

@GeoSpatialIndexed(类型=GeoSpatialIndexType.GEO\u 2DSPHERE)

关于这个问题的答案

MongoDB 2d索引需要传统的坐标对格式,它只是一个类似于[1,2]的坐标数组

因此,您可能需要更改字段SingleBusStop.location的类型


允许进行一些配置,参数“name”可能会有所帮助。

我真的很想使用这个GeoJsonPoint类型,我发现索引必须是2dsphere才能工作。
<groupId>pl.server.map</groupId>
<artifactId>Utils</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.0.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>3.5</version>
    </dependency>

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.15</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>

</dependencies>