javascript - 猫鼬在对象数组中找到
问题描述
我有一个猫鼬模式
var MessageSchema = new Schema({
streamer: {
streamer_username: String,
streams: [{
id: String,
messages: [{
date: String,
username: String,
message: String,
song: String
}]
}]
}
})
如您所见,它包含一个数组“streams”,其中包含具有“id”值的对象。我正在尝试使用此查询搜索数据库。
MsgSchema.find({ "streamer.streamer_username" : streamer_name, "streamer.streams": { "$in": {id: response.data[0].id} }}, (err, found) =>{}})
但我什么也没找到。即使我删除了第一个“用户名”部分,它仍然找不到任何东西并返回一个空数组,所以问题显然是第二部分。我的查询有什么问题?我在文档中找不到任何关于它的信息。
解决方案
我迟到了,但我希望它可以帮助其他人
您可以简单地使用.find()
和在其中,您可以在嵌套在一组文档中的多个字段上创建条件规范。最简单的方法是:
MessageSchema.find({ "streamer.streams": { id: "XXX" } });
推荐阅读
- java - 在 Spring Boot 应用程序中检索 JPQL 查询作为 DTO
- laravel - 如何在共享主机上的 laravel 项目中配置多个电子邮件
- laravel - Laravel 监听器不工作 - 缺少什么?
- java - java-ThreadPool-当线程数小于corePoolSize时,为什么要创建一个新线程而不是使用现有线程?
- git - 与 git-blame 命令一起使用时双点 (..) 的含义
- elasticsearch - ElasticSearch 中的分组和分页
- html - Outlook 中的表格不会在中心显示文本
- c# - 在使用 Prism 在 Xamarin Forms 中导航之前刷新页面内容
- c++ - 如何从 Apple 切换到 Homebrew 安装的 clang?
- node.js - 邮递员无法阅读我的获取和发布请求