MongoDb 获取数据时出现聚合错误
Posted
技术标签:
【中文标题】MongoDb 获取数据时出现聚合错误【英文标题】:MongoDb aggregate error while getting data 【发布时间】:2020-04-21 08:56:32 【问题描述】:大家好,我正在尝试将我收集的所有数据从 mongodb 聚合到 node.js 代码。让我分享我的数据库截图和我的 node.js 代码。 我的数据库:
这是我的代码:
let app = require("express")();
let http = require("http").Server(app);
let io = require("socket.io")(http);
let mongoose = require('mongoose');
let ObjectID = require("mongodb").ObjectID;
mongoose.connect('mongodb://localhost:27017/AuctionHouses', (err) =>
if(err)
console.log("error" + err);
else
console.log("mongodb connected");
)
let schema = mongoose.Schema;
let Auction = new schema(
auctions:
bids:
name:String,
bid:Number,
bidDate:Date
,
deadLine:Date
)
const id = mongoose.Types.ObjectId("5e0e21c4daa2b01e34ef6dc1");
let clients = [];
let bidModel = mongoose.model('auction', Auction);
//let ObjectId = mongoose.Types.ObjectId;
io.on("connection", socket =>
console.log("User connected");
clients.push(socket.id);
if(clients != [])
for(let i = 0; i< clients.length; i++)
if(io.sockets.connected[clients[i]] != undefined)
io.sockets.connected[clients[i]].emit("user", "User" + (i + 1));
socket.on("disconnect", function()
console.log("user disconnected");
io.emit("user", "User" + Object.keys(io.sockets.connected).length);
);
socket.on("find", function(msg)
bidModel.aggregate([
$unwind: '$bids',
$sort:
"bids.bid" : -1
,
$limit : 2
], function(err,msg)
if(err)
console.log(err);
else
io.emit("found", msg);
console.log(msg);
)
)
)
http.listen(5000, () =>
console.log("started on port 5000");
);
我也使用了套接字,但套接字工作得很好。所以你可以检查 bidModel.aggregate 部分。有一个错误,但我找不到它是什么。我也不确定模式或模型。
【问题讨论】:
不确定为什么需要使用套接字,请尝试我的回答。同样在这里let ObjectID = require("mongodb").ObjectID;
,您可以将其更改为let ObjectId = require("mongodb").ObjectID;
以使const id = mongoose.Types.ObjectId("5e0e21c4daa2b01e34ef6dc1");
工作
【参考方案1】:
socket.on("find", function (msg)
bidModel.aggregate([
$unwind: '$bids' ,
$sort:
"bids.bid": -1
,
$limit: 2
]).exec((err, msg) =>
if (err)
console.log(err);
else
io.emit("found", msg);
console.log(msg);
)
)
请试试这个可能是这个解决方案解决你的问题
【讨论】:
你能把bidModel改为拍卖吗,也许是你的进口问题以上是关于MongoDb 获取数据时出现聚合错误的主要内容,如果未能解决你的问题,请参考以下文章