Mongodb 使用 _id 无法聚合 facet
Mongodb aggregate facet won't work using _id
我下面有如下图片
我使用 _id 但不起作用,但是当我使用像 这样的字段时field_name 正在工作。
我已经使用了 ObjectId("5f311...") 还是不行
但是当我在 robomongo 客户端中使用查询但使用 ObjectId("5f311...") 时它有效。
非常感谢你们的帮助。我为此花了几个小时。
谢谢你,注意安全。
像这样使用 mongo 的 ObjectId:
{ $match: { _id: mongo.ObjectId("5f43ebb18415f39cf1cd75d4") } }
完整示例:
let mongo = require("mongodb");
let dbname = "test";
let mongoServerUrl = "mongodb://127.0.0.1:27017/" + dbname;
const connect = function () {
return new Promise((resolve, reject) => {
mongo.connect(
mongoServerUrl,
{
useNewUrlParser: true,
useUnifiedTopology: true,
},
(err, client) => {
if (err) {
reject(err);
} else {
let database = client.db(dbname);
resolve(database);
}
}
);
});
};
connect()
.then((database) => {
console.log("connect to database");
database
.collection("new")
.aggregate([
{
$facet: {
query1: [
{ $match: { _id: mongo.ObjectId("5f43ebb18415f39cf1cd75d4") } },
],
query2: [
{ $match: { _id: mongo.ObjectId("5f43ebb78415f39cf1cd75d5") } },
],
},
},
])
.toArray(function (err, res) {
if (err) {
console.log(err);
}
console.log("get new done");
console.log(res);
console.log(res[0].query1);
});
})
.catch((error) => {
console.log(error);
});
我下面有如下图片
我使用 _id 但不起作用,但是当我使用像 这样的字段时field_name 正在工作。
我已经使用了 ObjectId("5f311...") 还是不行
但是当我在 robomongo 客户端中使用查询但使用 ObjectId("5f311...") 时它有效。
非常感谢你们的帮助。我为此花了几个小时。
谢谢你,注意安全。
像这样使用 mongo 的 ObjectId:
{ $match: { _id: mongo.ObjectId("5f43ebb18415f39cf1cd75d4") } }
完整示例:
let mongo = require("mongodb");
let dbname = "test";
let mongoServerUrl = "mongodb://127.0.0.1:27017/" + dbname;
const connect = function () {
return new Promise((resolve, reject) => {
mongo.connect(
mongoServerUrl,
{
useNewUrlParser: true,
useUnifiedTopology: true,
},
(err, client) => {
if (err) {
reject(err);
} else {
let database = client.db(dbname);
resolve(database);
}
}
);
});
};
connect()
.then((database) => {
console.log("connect to database");
database
.collection("new")
.aggregate([
{
$facet: {
query1: [
{ $match: { _id: mongo.ObjectId("5f43ebb18415f39cf1cd75d4") } },
],
query2: [
{ $match: { _id: mongo.ObjectId("5f43ebb78415f39cf1cd75d5") } },
],
},
},
])
.toArray(function (err, res) {
if (err) {
console.log(err);
}
console.log("get new done");
console.log(res);
console.log(res[0].query1);
});
})
.catch((error) => {
console.log(error);
});