gpt4 book ai didi

javascript - 确定用户嵌入文档数组中是否存在值

转载 作者:行者123 更新时间:2023-12-03 02:50:36 26 4
gpt4 key购买 nike

我知道用户的 ID,并且我想知道他们的groceryList 中是否有与"name"= "foo" 匹配的值。这是我当前的查询,但即使名称不存在,它也会返回结果,我假设因为其中一个值存在。如何使其仅在两个值都为 true 时才返回结果?

User.findOne( {"_id": req.user._id},{"groceryList": {"$elemMatch": {"name": ingredients.name[i]}}}, function(err, result) {
if(err) {
console.log(err);
}
else if(result) {
console.log(result);
}
})

用户架构:

var groceryListSchema = mongoose.Schema({
quantity: { type: Number, required: true },
measurement: { type: String, required: true },
name: { type: String, required: true }
});

var userSchema = new mongoose.Schema({
username: String,
password: String,
recipes: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Recipe'
}
],
groceryList: {
type: [ groceryListSchema ]
}
});

最佳答案

第二个参数应该是查询的一部分。

User.findOne({"_id": req.user._id, "groceryList": {"$elemMatch": {"name": ingredients.name[i]}}})

正如上面指出的,写起来会更简单:

Users.findOne({"_id": req.user._id, "groceryList.name": ingredients.name[i] })

关于javascript - 确定用户嵌入文档数组中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47878340/

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