» »

mongodb multikey index z istim rootom

mongodb multikey index z istim rootom

detroit ::

Živjo imam vprašanje okoli monogodb

kako se sestavi multikey index če imata dva elementa isti root. Primer "request", ki je json strukturaa

npr
{
  requestDate: "blabla",
  request.Bla1.Bla2 : "neki" 
},
{
  requestDate: "blabla",
  request.Bla3.Bla4 : "neki drugega" 
},


moj index je sledeči
{
 "requestDate": 1,
  "request.Bla1.Bla2": 1,
  "request.Bla3.Bla4": 1
}

Težava je v temu (oz sploh ne vem če je težava ...ugibam) da vedno hita prvi torej request.Bla1.Bla2 index za vse querije tudi take ki vsebujejo request.Bla3.Bla4

Ter še drugo vprašanje query
{
	"$and": [{
			"requestDate": {
				"$gte": ISODate("2021-03-31T22:00:00.000Z"),
				"$lte": ISODate("2021-04-16T21:59:59.999")
			}
		},
                {
			"$or": [{
					"Request.Bla1.Bla2.Item.@type": /TEXT/
				}, {
					"Request.Bla3.Bla4": /TEXT/
				}]
		}
	]
}

je zelo počasen (preko C# driverja še mnogo bolj kot v samem cli, ampak o temu drugič)
če pa odstranim or pa gre na cca 2sec - kar je tudi dokaj počasno.

Any hints za zgornje vprašanje in spodnjo težavo? (zgledata najbrž povezani)
Skero

detroit ::

p.s. mongo 4.0.4 ki nima wildcard indexa
Skero

showsover ::

Če 'denormaliziraš' te rq.blaX.blaY, da niso tako gnezdeni ampak so kopije vrednosti pri vrhu?

Zgodovina sprememb…

  • spremenilo: showsover ()

detroit ::

recimo da bi to povzročilo veliko dela.
Ali bi wildcard index pomagal? Ker potem bi upgradal bazo nekako
Skero

showsover ::

Poskusi, sicer domnevam, da mora engine 'matchati' properties na wildcarde in vseeno pridobiti vrednosti iz globine, samo še en korak je vmes, ampak možno pa je tudi, da imaš prav. Ko boš imel ustrezno rešitev, prosim, pridi povedat :-)

detroit ::

deal, ko dobim "resource" bom sprobal pa da vidimo. Thx!
Skero

Spura ::

detroit ::

@Spura is imel kaj specifičnega v mislih? Meni zgledata pretty much covered


detroit je izjavil:


moj index je sledeči
{
"requestDate": 1,
"request.Bla1.Bla2": 1,
"request.Bla3.Bla4": 1
}

Skero

Zgodovina sprememb…

  • spremenil: detroit ()

detroit ::

could be wrong?
Skero

Zgodovina sprememb…

  • spremenil: detroit ()

Spura ::

Ne spoznam se na Mongo do te mere, da bi vedel ali je covered ali zakaj ni. Ampak ti pravis da ne gre po indeksu, torej zgleda ni covered. Pri navadnih bazah je recimo ful pomembn vrstni red indeksov. Pri navadni bazi takle index ne bi delal sploh, ampak bi namesto tega rabil dva indexa:

- ["requestDate", "request.Bla1.Bla2"]
- ["requestDate", "request.Bla3.Bla4"]

Index ponavadi gre tako kot je definiran: najprej po requestDate, potem po "request.Bla1.Bla2" in potem po "request.Bla3.Bla4". Nikakor ga ne mores uporabit in "request.Bla1.Bla2" preskocit, i.e. query za "requestDate", "request.Bla3.Bla4" ne bo sel po indexu. In to je v tvojem ORu.

Ampak kot receno nimam pa dovolj specificnega znanja o MongoDb, obstaja toliko boljsih baz.

HotBurek ::

...obstaja toliko boljsih baz.

Seznam or it didnt hepan. Rad bi bral, daj mal materiala vun. :O
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

detroit ::

@Spura sta dva indexa oz v mojem primeru so trije (v resnici jih je itak več:))

{
 "requestDate": 1,
 "request.Bla1.Bla2": 1,
 "request.Bla3.Bla4": 1
 }


to so trije indexi afaik
Skero


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pobegla baza z osebnimi in finančnimi podatki več kot polovice ameriških gospodinjste

Oddelek: Novice / Zasebnost
268198 (5840) MrStein
»

C# WPF nalaganje info. iz XML dokumenta

Oddelek: Programiranje
6921 (741) MrStein
»

Internet strani kot slideshow

Oddelek: Izdelava spletišč
211978 (1729) sverde21
»

Nekdaj glede MySQL podatkovne baze

Oddelek: Izdelava spletišč
141788 (1555) zdravc
»

SQL problem -GROUP BY

Oddelek: Programiranje
71034 (952) tomi_m

Več podobnih tem