【发布时间】:2020-08-28 12:22:14
【问题描述】:
假设我们有一个查询构建器服务 B,它在调用时会输出 mongo db 查询。此查询由服务 A 接收,并按原样使用 mongo db 官方 nodejs 驱动程序执行。
我如何发送类似的东西:
[{
_id: new mongo.ObjectID("5f3258cfbaaccedaa5dd2d96"),
phone: "666"
}, {
_id: new mongo.ObjectID("5f3258cfbaaccedaa5dd2da2"),
phone: "555"
}]
从服务 B 到服务 A?
编辑:
以下工作非常好:
var q = { _id: new mongo.ObjectID("5f3258cfbaaccedaa5dd2d96") };
const result = await this.db.collection("persons").find(q).toArray();
以下不起作用:
var q = { _id: { $oid: "5f3258cfbaaccedaa5dd2d96" } }
const result = await this.db.collection("persons").find(q).toArray();
现在,
var q = { _id: new mongo.ObjectID("5f3258cfbaaccedaa5dd2d96") };
JSON.stringify(q)
给你:{"_id":"5f3258cfbaaccedaa5dd2d96"},如果你把它传递给服务 A。你不能在服务 A 中使用它,如下所示:
const result = await this.db.collection("persons").find(qStr).toArray();
或者作为,
const result = await this.db.collection("persons").find(JSON.parse(qStr)).toArray();
【问题讨论】:
-
使用
var q = { _id: new mongo.ObjectID("5f3258cfbaaccedaa5dd2d96") }; const result = await this.db.collection("persons").find(q).toArray();有什么问题? -
完全没有问题。它在服务 B 中运行良好。但问题是如何将其发送到服务 A 并在服务 A 中执行? @whoami
-
是的,我的意思是当你将它发送到
service A时发生了什么?
标签: javascript node.js json mongodb mongodb-query