apoc.mongodb.get.byObjectId

过程 Apoc 扩展

apoc.mongodb.get.byObjectId(hostOrKey, db, collection, objectIdValue, config(default:{})) - 按对象 ID 值获取文档

签名

apoc.mongodb.get.byObjectId(host :: STRING?, db :: STRING?, collection :: STRING?, objectIdValue :: STRING?, config = {} :: MAP?) :: (value :: MAP?)

输入参数

名称 类型 默认

host

STRING?

null

db

STRING?

null

collection

STRING?

null

objectIdValue

STRING?

null

config

MAP?

{}

配置参数

该过程支持以下配置参数

表 1. 配置参数
名称 (name) type 默认 description(描述)

compatibleValues

boolean

true

将 MongoDB 数据类型转换为 Neo4j 数据类型

extractReferences

boolean

false

如果为 true 且字段包含 ObjectId,它将包含相关文档而不是 ObjectId

objectIdAsMap

boolean

true

_id 提取为 map

idFieldName

字符串

_id

ObjectId 的字段名称

输出参数

名称 类型

MAP?

安装依赖

Mongo 过程依赖于 APOC Extended 库中未包含的客户端库。

此依赖项包含在 apoc-mongodb-dependencies-2025.10.0-all.jar 中,可从 发布页面 下载。下载该文件后,应将其放入 plugins 目录并重启 Neo4j 服务器。

使用示例

字段描述

  • host:MongoDB 主机,格式为 mongodb://<HOST_NAME>:<PORT>,或者在 apoc 配置中定义的 url apoc.mongodb.myInstance.url=mongodb://<HOST_NAME>:<PORT>,可以通过简单地传递 myInstance 来调用

  • db:数据库名称

  • collection:集合名称

  • objectIdValue:要检索的文档的 ObjectId

  • config:配置 map

示例

假设存在以下集合

// Product
...
{"_id": ObjectId("product1"), "name": "Product 1", "price": 100}
{"_id": ObjectId("product3"), "name": "Product 2", "price": 200}
{"_id": ObjectId("product3"), "name": "Product 3", "price": 300}
{"_id": ObjectId("product4"), "name": ObjectId("507f191e810c19729de860ea"), "price": 400}
...
// Person
...
{"_id": ObjectId("person"), "name": "Andrea", "bought": [ObjectId("product1"), ObjectId("product3")]}
...

执行 CALL apoc.mongodb.get.byObjectId(<HOST>, <DB>, "product", "product1")

{
  "_id": {
  	"timestamp": <...>,
	"machineIdentifier": <...>,
	"processIdentifier": <...>,
	"counter": <...>,
  }
  "name": "Product 1",
  "price": 100L
}

执行 CALL apoc.mongodb.get.byObjectId(<HOST>, <DB>, "product", "product4", {idFieldName: "name"})

{
  "_id": {
  	"timestamp": <...>,
	"machineIdentifier": <...>,
	"processIdentifier": <...>,
	"counter": <...>,
  }
  "name": "507f191e810c19729de860ea",
  "price": 400L
}

执行 CALL apoc.mongodb.get.byObjectId(<HOST>, <DB>, "product", "product1", "_id", {extractReferences: true, objectIdAsMap: true, compatibleValues: false})

{
  "_id": {
  	"timestamp": <...>,
	"machineIdentifier": <...>,
	"processIdentifier": <...>,
	"counter": <...>,
  },
  "name": "Andrea",
  "bought": [
    {
      "_id": {
	  	"timestamp": <...>,
		"machineIdentifier": <...>,
		"processIdentifier": <...>,
		"counter": <...>,
	  },
	  "name": "Product 1",
	  "price": 100
	},
    {
      "_id": {
	  	"timestamp": <...>,
		"machineIdentifier": <...>,
		"processIdentifier": <...>,
		"counter": <...>,
	  },
	  "name": "Product 3",
	  "price": 300
	},
  ]
}
© . This site is unofficial and not affiliated with Neo4j, Inc.