gpt4 book ai didi

mongodb - Model.findOne 没有按预期工作?

转载 作者:可可西里 更新时间:2023-11-01 10:09:12 26 4
gpt4 key购买 nike

[
{
"userId": "5bb6730721f28a295436b36e",
"reputationNumber": 0,
"questions": [],
"answers": [],
"id": "5bb6730721f28a295436b36f"
},
{
"userId": "5bb6738c21f28a295436b370",
"reputationNumber": 0,
"questions": [],
"answers": [],
"id": "5bb6738c21f28a295436b371"
}
]

我在模型 userDatas 中有 2 个元素,我想通过使用 userId 属性进行过滤来查找单个 userData。

这是我做的

Userdatas.findByUserId = function(req, res, cb) {
const queryId = req.query.userId
console.log("queryId: ",queryId);
Userdatas.find({ userId: "5bb6738c21f28a295436b370"}, function(err, obj){
console.log(obj);
var userData = obj;
cb(null, userData);
});
}

令人惊讶的是,控制台输出是,

    [ { userId: '5bb6730721f28a295436b36e',
reputationNumber: 0,
questions: List [],
answers: List [],
id: 5bb6730721f28a295436b36f },
{ userId: '5bb6738c21f28a295436b370',
reputationNumber: 0,
questions: List [],
answers: List [],
id: 5bb6738c21f28a295436b371 } ]

我期望的是,

{
"userId": "5bb6738c21f28a295436b370",
"reputationNumber": 0,
"questions": [],
"answers": [],
"id": "5bb6738c21f28a295436b371"
}

但查询在 robo mongo shell 中运行完美。

最佳答案

在环回“find”和“findOne”函数中接受这种模式的查询:{where:{queryFilters}}

因此,在您的示例中,您可以这样更改它:

Userdatas.findByUserId = function(req, res, cb) {
const queryId = req.query.userId
console.log("queryId: ",queryId);
Userdatas.findOne({ where:{userId: "5bb6738c21f28a295436b370"}}, function(err, obj){
console.log(obj);
var userData = obj;
cb(null, userData);
});
}

在选项下打开 user-datas.json 添加 "strictObjectIDCoercion": true 属性。

关于mongodb - Model.findOne 没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52655235/

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