如何将 node-red 中的 ObjectID 作为查询参数传递给 mongodb?
How to pass ObjectID as query parameter in node-red to mongodb?
我正在使用 node-red-contrib-mongodb3 并且无法将 ObjectId 作为参数传递,无法使用 MongoDB auto-generated _id,有什么方法可以使用“_id” ": 'ObjectId("myID")' 作为参数?
我已遵循有关传递查询参数的模块教程node-red-contrib
举个例子:
我的 collection 中有以下文档:
{
"_id" : ObjectId("5c9156c7f8c3ec3259454571"),
"name" : "teste_site_1",
}
如果我作为 msg.payload 传递给 findOne 操作
msg.payload = { "name" : "teste_site_1" }
returns 我的文档在 _id 中没有 ObjectID
{
"_id" : "5c9156c7f8c3ec3259454571",
"name" : "teste_site_1",
}
如果我将 _id 作为参数传递:
msg.payload = { "_id" : "5c9156c7f8c3ec3259454571" }
returns空。
我无法在 node-red 中调用 ObjectId,也无法作为字符串 ObjectId 传递。
我想知道是否已经有办法将 ObjectId 作为参数传递。
这是一个错误还是我遗漏了什么?
我已经通过在 'mongodb' 节点模块中使用 ObjectId 函数的 return 作为参数解决了问题,但是为了在函数节点内使用节点模块,必须将其导入到全局上下文中你的节点红色目录。
在 windows:
C:\users\username\.node-red\settings.js
在Ubuntu
~\.node-red\settings.js
并将 ObjectId 作为全局导入包含在内
functionGlobalContext: {
require: require, // Not mandatory
ObjectId : require('mongodb').ObjectID,
},
我还包含了 'require' 模块,因为有些人可能会发现不乱用 settings.js 很有用,并且不需要重新启动进程来添加未来的模块。
在功能节点内部,我只是按如下方式传递了有效载荷。
var ObjectId = global.get('ObjectId');
msg.payload={
"_id":ObjectId("5c9156c7f8c3ec3259454571")
};
return msg;
我正在使用 node-red-contrib-mongodb3 并且无法将 ObjectId 作为参数传递,无法使用 MongoDB auto-generated _id,有什么方法可以使用“_id” ": 'ObjectId("myID")' 作为参数?
我已遵循有关传递查询参数的模块教程node-red-contrib
举个例子:
我的 collection 中有以下文档:
{
"_id" : ObjectId("5c9156c7f8c3ec3259454571"),
"name" : "teste_site_1",
}
如果我作为 msg.payload 传递给 findOne 操作
msg.payload = { "name" : "teste_site_1" }
returns 我的文档在 _id 中没有 ObjectID
{
"_id" : "5c9156c7f8c3ec3259454571",
"name" : "teste_site_1",
}
如果我将 _id 作为参数传递:
msg.payload = { "_id" : "5c9156c7f8c3ec3259454571" }
returns空。
我无法在 node-red 中调用 ObjectId,也无法作为字符串 ObjectId 传递。
我想知道是否已经有办法将 ObjectId 作为参数传递。 这是一个错误还是我遗漏了什么?
我已经通过在 'mongodb' 节点模块中使用 ObjectId 函数的 return 作为参数解决了问题,但是为了在函数节点内使用节点模块,必须将其导入到全局上下文中你的节点红色目录。 在 windows:
C:\users\username\.node-red\settings.js
在Ubuntu
~\.node-red\settings.js
并将 ObjectId 作为全局导入包含在内
functionGlobalContext: {
require: require, // Not mandatory
ObjectId : require('mongodb').ObjectID,
},
我还包含了 'require' 模块,因为有些人可能会发现不乱用 settings.js 很有用,并且不需要重新启动进程来添加未来的模块。
在功能节点内部,我只是按如下方式传递了有效载荷。
var ObjectId = global.get('ObjectId');
msg.payload={
"_id":ObjectId("5c9156c7f8c3ec3259454571")
};
return msg;