Как отсортировать комментарии по дате / времени, опубликованные в React (Firebase)?

Итак, «findOneAndUpdate» требует опции для возврата исходного документа. И, опция:

MongoDB shell

{returnNewDocument: true}

Ссылка: https://docs.mongodb.com/manual/reference /method/db.collection.findOneAndUpdate/

Mongoose

{new: true}

Ссылка: http://mongoosejs.com /docs/api.html#query_Query-findOneAndUpdate

Node.js API-интерфейс драйвера MongoDB:

{returnOriginal: false}

Ссылка: http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#findOneAndUpdate

0
задан Mark_Bruckert 15 January 2019 в 23:51
поделиться

1 ответ

Как только вы звоните snapshot.val(), вы теряете всю информацию о заказе снимка, на котором вы его вызываете. Это связано с тем, что свойства в объекте JSON не имеют определенного порядка.

Итак, вам нужно перебрать совпадающие узлы с помощью встроенной функции DataSnapshot.forEach():

const commentsRef = firebase.database().ref("Comments/News").orderByChild("date").limitToLast(5);
commentsRef.on("value", snapshot => {
  let newState = [];
  snapshot.forEach(symptomSnapshot => {
    let symptom = symptomSnapshot.val();
    newState.push({
      id: symptomSnapshot.key,
      comment: symptom.comment,
      date: symptom.date
    });
  });
  // TODO: this is where you'll typically call setState(...)
});
0
ответ дан Frank van Puffelen 15 January 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: