Javascript MongooseJS正在尝试使用嵌套查询运算符进行填充
我有一个密码:Javascript MongooseJS正在尝试使用嵌套查询运算符进行填充,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我有一个密码: const profiles = await Profile.find({ profileVisibility: true }) .populate("products", null, { itemName: "Item 1" }); 这是因为我试图找到itemName,它是概要文件的直接字段。 但是,在同一配置文件模式中,我有一个名为List的嵌套对象,它是一个具有嵌套字段的对象,例如: ProfileSchema = { itemN
const profiles = await Profile.find({ profileVisibility: true })
.populate("products", null, {
itemName: "Item 1"
});
这是因为我试图找到itemName,它是概要文件的直接字段。
但是,在同一配置文件模式中,我有一个名为List的嵌套对象,它是一个具有嵌套字段的对象,例如:
ProfileSchema = {
itemName: "Item 1",
lists: {
name: "name 1",
price: "price 1"
}
}
当我尝试这样做时,我得到null(每次我尝试查询嵌套属性时都会出现这种情况):
populate
用于从另一个集合(用于ex的ListSchema)获取数据我不确定这是否是您正在进行的操作。我更关心的是如何尝试查询嵌套对象。当我使用.find({itemName:“Item 1”})时,同样的情况也适用。find({code>.find:{$name:{$eq:'name 1'}}})可以工作,但是任何嵌套的东西都可以工作。find(list:{name:{$eq:'name 1'}})不能工作。
你能在问题中添加一些示例文档作为json,并描述预期的输出吗?配置文件和产品架构代码也很有用。请尝试.find('lists.name':{$eq:'name 1'})
-
.populate("list", null, {
lists: {name: { $eq: 'name 1' } }
}