#mongodb #node-mongodb-native #changestream
Вопрос:
У меня есть коллекция команд с образцом документа:
{ "_id": { "teamName": "BILALATI6449", "tournamentId": "197831" }, "tournamentName": "Amanora Cricket Championship 2021", "player1": { "$oid": "6187d65514f9a67bcf9e8102" }, "player2": { "$oid": "6187d65514f9a67bcf9e8102" }, "player3": { "$oid": "6187d65514f9a67bcf9e8102" }, "player4": { "$oid": "6187d65514f9a67bcf9e8102" }, "player5": { "$oid": "6187d65514f9a67bcf9e8102" }, "player6": { "$oid": "6187d65514f9a67bcf9e8102" }, "player7": { "$oid": "6187d65514f9a67bcf9e8102" }, "player8": { "$oid": "6187d65514f9a67bcf9e8102" }, "player9": { "$oid": "6187d65514f9a67bcf9e8102" }, "player10": { "$oid": "6187d65514f9a67bcf9e8102" }, "player11": { "$oid": "6187d65514f9a67bcf9e8102" }, "__v": 0 }
Все объекты игроков имеют встроенные документы из pointotals. Как я могу отслеживать изменения в этих документах? Я попробовал этот код, но идентификатор не работает.
const collection = client.db("mysquad11").collection("pointtotals"); const changeStream = collection.watch(); changeStream.on("change", (next) =gt; { if (next.operationType === "update") { console.log(next); } });
Может кто-нибудь помочь мне решить эту проблему. Я хочу только прослушать изменения встроенных документов, а не все документы коллекции pointTotals. Образец документа из коллекции pointtotals представляет собой:
{ "_id": { "$oid": "6188f5b5a153c12f050fa451" }, "ids": { "_id": "113069", "tournamentId": "197831" }, "playerName": "Abhijit Tupe", "pointsTotal": 426, "__v": 0, }
Комментарии:
1. Что вы имеете в виду под » Я попробовал этот код, но идентификатор не работает».?
2. Он не отслеживает изменения во встроенном документе(из итоговых данных) в командном документе. Когда я изменяю изменения во встроенном документе в коллекции pointotal, на консоли ничего не печатается. Но, когда я вношу изменения в «$oid» любого игрока, следующий объект печатается на консоли.
3. Вы используете
Mongoose
ODM? Или это драйвер MongoDB NodeJS? Кроме того, включите образец коллекции, который вы пробуете, в свой пост.4. @prasad_ Я использую драйвер nodejs для реализации потока изменений. Но для всего остального взаимодействия с базой данных я использую мангуста
5. Может быть, попробуйте также использовать API Мангуста для потока изменений.