我使用TypeScript/Javascript與Meteor/Mongo。Mongo光標更新
我正在嘗試更新其lastMessageCreatedAt
字段上帶有時間戳的光標。
updateChat(senderId: string, chatId: string): void {
const chatExists = !!Chats.find(chatId).count();
if (!chatExists) throw new Meteor.Error('chat-not-exists',
'Chat doesn\'t exist');
const chat1 = Chats.find(chatId);
const receiverId = chat1.memberIds.find(memberId => memberId != senderId); // <=== error TS2339: Property 'memberIds' does not exist on type 'Cursor<Chat>'.
const chat = {
memberIds: [senderId, receiverId],
lastMessageCreatedAt: new Date()
};
Chats.update(chat); // <=== error TS2346: Supplied parameters do not match any signature of call target.
},
模型
interface Chat {
_id?: string;
memberIds?: string[];
title?: string;
picture?: string;
lastMessage?: Message;
lastMessageCreatedAt?: Date;
receiverComp?: Tracker.Computation;
lastMessageComp?: Tracker.Computation;
}
問題
不過,我得到上述錯誤。我如何更新光標以獲得時間戳?我是Meteor/Mongo的新手,所以我可能會接近完全錯誤的。
感謝您的回覆。但是,這不會更新。我也沒有看到任何錯誤。時間戳保持不變:'{ 「_id」: 「8wca85kB7tHEudgjJ」, 「memberIds」:[ 「P9」, 「J64」 ], 「lastMessageCreatedAt」:「2016-09-16T16:13:35.942 Z「 } ]' – Richard
嗨,我已更正了代碼。我錯過了'全部'運營商。 – Ankit
謝謝。我測試了它,但它仍然沒有更新:'[{「_id」:「8wca85kB7tHEudgjJ」,「memberIds」:[「P9」,「J64」],「lastMessageCreatedAt」:「2016-09-16T16:13:35.942 Z「}] app.bundle.js(line 481) updateChat:P9,J64,Fri Sep 16 2016 21:34:45 GMT + 0200(南非標準時間) app.bundle.js(line 483) [{「_id」:「8wca85kB7tHEudgjJ」,「memberIds」:[「P9」,「J64」],「lastMessageCreatedAt」:「2016-09-16T16:13:35.942Z」}]' – Richard