gpt4 book ai didi

javascript - 使用 _id 查找在 mongodb 中不起作用

转载 作者:行者123 更新时间:2023-11-30 20:28:21 25 4
gpt4 key购买 nike

我有一个名为 Releases 的集合,其中包含一个名为 product 的子文档。我的收藏看起来像这样:

{
"_id": ObjectId("5b1010e4ef2afa6e5edea0c2"),
"version": "abc",
"description": "<p>abc</p>\n",
"product": {
"_id": ObjectId("5b100c9949f43c6b6f10a93f"),
"name": "Product 1",
"description": "<p>abc</p>\r\n",
"image": "Product 1.png",
"__v": 0
},
"releasedate": ISODate("2018-05-30T00:00:00Z"),
"__v": 0
}

我正在尝试查找与特定产品关联的所有版本。

   var id = req.body.productId
var query = {'product._id' : id};
Release.find(query)
.select('_id version description product releasedate')
.sort({releasedate: 1 })
.exec()
.then(releases => {
console.log(releases);
res.status(200).json(releases);
})

但是如果我使用 console.log(releases) 它会给我一个空数组我已经坚持了一段时间,并向你们寻求帮助。我究竟做错了什么。我阅读了关于 https://docs.mongodb.com/manual/tutorial/query-embedded-documents/ 的文档并尝试将它应用到我的代码中,但我无法让它工作。

我的架构如下所示:

   var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var Product = new Schema({
_id: Schema.Types.ObjectId,
name: String,
description: String,
image: String,
});
module.exports = mongoose.model('Product', Product);

最佳答案

您需要将您的 id 从 string 更改为 mongoose objectId

var id = req.body.productId
var query = {'product._id' : mongoose.Types.ObjectId(req.body.productId)};
Release.find(query)
.select('_id version description product releasedate')
.sort({releasedate: 1 })
.exec()
.then(releases => {
console.log(releases);
res.status(200).json(releases);
})

关于javascript - 使用 _id 查找在 mongodb 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50628014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com