当前位置: 首页 > 面试题库 >

MongoDB $ lookup Objectid获取空数组?

王骏
2023-03-14
问题内容

我是mongodb的新手,并在下面的文档中aggregate使用mongoose进行练习$lookup,并且遇到了一个非常令人困惑的问题。

我有用户架构

const userSchema = new Schema({
  userName: {type: String, index:{unique: true}},
  password: String,
  avatar: String
})

评论模式

const commentSchema = new Schema({
  post: {type: Schema.Types.ObjectId, ref:'postModel'},
  author:{type: Schema.Types.ObjectId, ref:'userModel'},
  content: String,
  createTime: Date
})

和模型commentModel= mongoose.model('commentModel', commentSchema) userModel = mongoose.model('userModel', userSchema) 然后我做

commentModel.aggregate.([{$lookup: {
  from: 'userModel',
  localField: 'author',
  foreignField: '_id',
  as: 'common'
}])

但是我在查询中得到空的共同点。根据数据库中的数据,我不应该得到这个结果。搜索后,我仍然找不到错误所在。

最后但并非最不重要的一点是,我需要使用aggregate方法,因此我必须$lookup在参考文件上使用,是否有意义?


问题答案:

from$ lookup中的字段是集合名称,而不是模型变量名称。因此,如果您要像这样初始化模型

db.model('User', userSchema)

那么查询查询应该是

commentModel.aggregate([{$lookup: {
  from: 'users',
  localField: 'author',
  foreignField: '_id',
  as: 'common'
}])


 类似资料:
  • 我想通过“id”从我的mongodb获取数据。如果我的id与mongodb中id的值匹配,则它将获取该对象,但其抛出错误为: {“message”:“对于模型“PostMessage”“”的路径“\u id”处的值“s-CoAhDKd”,转换为ObjectId失败}

  • 我正在测试一个基于酒店搜索的场景。所以我做了3个模型类,分别是酒店、房间和可用性 下面是我们正在使用的三个模型类。 Hotel.java @文档(集合="酒店")公共类酒店{ } Room.java @文件(收集=“房间”)公共教室{ } 可利用性Java语言 @文件(收集=“房间”)公共类可用性{ } 这些存储在两个mongodb集合中,一个用于酒店,另一个用于房间和可用性。 下面是我们从中提取

  • 问题内容: 我有两个模型,用户模型和时间表,我想用$ lookup 和猫鼬把这两个模型结合起来。 用户(型号) 时间表(型号) 现在我的查询使用猫鼬: 用户汇总 我的查询结果是一个空的array(),如下所示: 查询结果: 我不知道为什么,但是查询结果是一个 空数组 ,我试图使用$ unwind和$ match,但也无法正常工作。 编辑: 用户集合 时间表的收集 问题答案: 猫鼬在创建时将集合名称

  • 本文向大家介绍MongoDB中查询数组以获取特定值,包括了MongoDB中查询数组以获取特定值的使用技巧和注意事项,需要的朋友参考一下 要从数组中获取特定值,请使用aggregate()和$project。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是如何在MongoDB中查询数组- 这将产生以下输出-

  • 我试图在数据帧中找到空值。虽然我回顾了Stackoverflow的以下文章,其中描述了确定空值的过程,但我很难对我的数据集执行相同的操作。 如何计算熊猫数据帧中列中的楠值 工作代码: 我做错了什么?

  • 这是我的控制器文件位置。js 我的模型文件位置。js 每当我跑的时候http://localhost:3000/api/locations?lng=-0.9690884 TypeError: Loc.geo在Layer.handle[作为handle_request](/home/shacker/Projects/loc8r/app_api/控制器/locations.js:51: 7)时没有mo