node.js - 使用 $lookup 处理对象 id 聚合的管道
问题描述
Users.aggregate([{ $geoNear: { near: {type: "Point" , coordinates: [lng,lat] } , distanceField: "dist.calculated" , maxDistance: 2000000 ,query: { deleted: '0' , _id: { $ne: user_result._id}}}}, { $lookup: {from: 'images' , let: { user_connected: '$_id' } , pipeline:[ {
$match: {
$expr:{
$eq: [ "$user" , "$$user_connected" ]
}
},
} ] , as: 'images'}} ,{ $skip: skip },{ $limit: perpage}]).allowDiskUse(true).exec(function (err, result) {
if(err) {
return res.status(400).json({success: 202 , message: "Database Error." , result: err});
}
if(isset(result) && !empty(result)){
return res.status(200).json({success: 200 , message: "Users Data." , result: result});
}else{
return res.status(400).json({success: 205 , message: "No Records Found." , result: []});
}
});
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
var Schema = mongoose.Schema;
var ImagesSchema = new Schema({
name: { type: String , required: true},
user: [{ type: Schema.Types.ObjectId, ref:'users' , default: '' }],
status: { type: String , default: ''} ,
expireTime: { type: Date , default: new Date()}
},
{timestamps: true})
//.index({ "createdAt": 1 }, { expireAfterSeconds: 86400 });
console.log("Create Index if collection droped")
var images = mongoose.model('images', ImagesSchema);
module.exports = images;
我正在创建一个将用户模型连接到图像模型的管道,但它没有从图像模型中获取所有图像。我正在将我的用户模型连接到图像以显示在用户列表中,但它不起作用。谁能帮我?
解决方案
推荐阅读
- cassandra - 如何正确地将客户端应用程序连接到 Scylla 或 Cassandra?
- c# - 在 Visual Studio 2019 c-sharp 中检索 SQL Server 2019 表列列表的 ExecuteScalar 方法错误地按 ASCII 排序
- javascript - 如何使用 javascript 清除谷歌翻译源文本 div?
- sql - 如何计算 SQL 表中的每一行与另一个表的所有行的距离?
- java - android中具有多个选项的单芯片
- excel - VBA 查找错误 - 尝试在此处进行研究,但找不到有效的答案
- vue.js - 未捕获的 TypeError:this._map 为空(Vue.js 3,Leaflet)
- google-apps-script - GmailApp.sendEmail 仅在脚本编辑器中运行时有效
- sql - CREATE TABLE 错误也会导致隐式提交中的错误?
- kubernetes - 部署 cockroachdb-client-secure 的问题