sql >> Databáze >  >> NoSQL >> MongoDB

Jaká je nejlepší datová struktura pro ukládání těchto dat na mongoDB?

Vaše struktura vypadá správně. Do datového pole ukládáte pouze news_id a to je chytřejší implementace, protože uložení kompletního dokumentu způsobí mnoho přesunů a psaní v MongoDB pokaždé, když uživatel přidá novou zprávu do oblíbených.

Důvod, který už asi víte, je ten, že při každé aktualizaci se vytváří nový dokument. Odkaz:http://docs.mongodb.org/ manual/reference/method/db.collection.save/#upsert .

Také si myslím, že jako obchodní pravidlo byste měli omezit počet novinek, které může uživatel nastavit jako oblíbené. Nechat tento seznam neomezeně růst nebude pro vložený návrh dobrý nápad.

V případě, že chcete neomezený počet oblíbených položek, raději pro to vytvořte samostatnou sbírku a poté pro získání všech oblíbených položek uživatelem použijte operátory $match (na ID uživatele) a $sort (of news items) v agregačním dotazu. získat seřazený seznam oblíbených zpráv pro uživatele.




  1. Výsledek dotazu Mongoose .find obsahuje metadata dotazu? nelze pouze ručně promítnout každou vlastnost sbírky, jak získat pouze dokument?

  2. Jak databáze NoSQL fungují na agregovaných funkcích (AVG, SUM atd.)

  3. Jak vytvořit datum dotazu v mongodb pomocí pymongo?

  4. Přesnost příkazu redis dbsize