socket.io 和按对象 id 过滤 mongodb
Posted
技术标签:
【中文标题】socket.io 和按对象 id 过滤 mongodb【英文标题】:socket.io and filtering mongodb by object id 【发布时间】:2020-04-28 13:50:37 【问题描述】:我正在尝试在使用 Socket.io 时通过对象 id 从 mongoDB 集合中获取文档。
由于findById()
在这里不起作用,我不能这样做find( "_id" : _id)
我不知道如何继续。
这让我在客户端返回了我的整个收藏。但我只想要给定 _id 的一份文档。
_id 到达服务器端。我检查过。
提前致谢
io.on('connection', socket =>
console.log('user arrived');
socket.emit('chat-message', 'hello-world');
socket.on('send-chat-id', _id =>
console.log(_id);
const chats = db.collection('chats');
chats.find().toArray(function(error, result) <------
if (error)
throw error;
socket.emit('chat-messages', result);
);
);
);
【问题讨论】:
【参考方案1】:每当您使用findById()
时,您都需要使用以下行将传入的参数从string
(来自UI)转换为ObjectId
:
const objectId = new ObjectId(_id)
【讨论】:
以上是关于socket.io 和按对象 id 过滤 mongodb的主要内容,如果未能解决你的问题,请参考以下文章
如何更新房间内所有客户端的套接字对象? (socket.io)