mongodb - 查找包含特定值的数组的文档

如果我有这个架构...

person = {
    name : String,
    favoriteFoods : Array
}

... favoriteFoods 数组用字符串填充。如何使用 Mongoose 找到所有将“寿司”作为他们最喜欢的食物的人?

我希望得到类似的东西:

PersonModel.find({ favoriteFoods : { $contains : "sushi" }, function(...) {...});

(我知道mongodb中没有$contains,只是解释一下我在知道解决方案之前期望找到的东西)

最佳答案

由于 favouriteFoods 是一个简单的字符串数组,您可以直接查询该字段:

PersonModel.find({ favouriteFoods: "sushi" }, ...); // favouriteFoods contains "sushi"

但我也建议在您的架构中明确显示字符串数组:

person = {
    name : String,
    favouriteFoods : [String]
}

相关文档可以在这里找到:https://docs.mongodb.com/manual/tutorial/query-arrays/

https://stackoverflow.com/questions/18148166/

相关文章:

mongodb - 删除 MongoDB 数据库中的所有内容

javascript - 如何在 Mongoose 中更新/插入文档?

macos - Mongod 提示没有/data/db 文件夹

mongodb - 查找数组字段不为空的 MongoDB 记录

mongodb - 如何在 Mongo 中查询 "is not null"?

authentication - 如何使用用户名和密码保护 MongoDB

mongodb - 仅检索 MongoDB 集合中对象数组中的查询元素

mongodb - 如何通过shell脚本执行mongo命令?

mongodb - 查找两个日期之间的对象 MongoDB

mongodb - 检查字段是否包含字符串