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

Spouštění pokročilých MongoDB dotazů v R s rmongodb

Buď c() nebo list() může být v pořádku. Záleží na tom, zda jsou komponenty pojmenovány a zda mají všechny stejný typ (pro seznam). Nejlepší věc, kterou můžete udělat, je podívat se na vygenerovaný BSON a zjistit, zda dostáváte to, co chcete. Pro nejlepší kontrolu nad generovaným objektem použijte mongo.bson.buffer a funkce, které s ním pracují. Ve skutečnosti to je důvod, proč dílčí dotazy selhávají. 'komentáře' se vytváří spíše jako podobjekt než jako pole. mongo.bson.from.list() je šikovný, ale nedává vám stejnou kontrolu a někdy špatně odhadne, co vygenerovat ze složitých struktur.

Dotaz na druhou sadu dat lze opravit takto:

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "name.first")
mongo.bson.buffer.append(buf, "$in", c("Alex", "Horst"))
mongo.bson.buffer.finish.object(buf)
criteria <- mongo.bson.from.buffer(buf)

Všimněte si, že zde rozhodně musíte použít vyrovnávací paměť, protože R se dusí tečkovaným názvem.

Doufám, že to vyřeší váš problém. Pokud máte nějaké další otázky, dejte mi vědět.



  1. Jak zkontrolovat, zda je připojení MongoDB živé v Node.js

  2. Spuštění mongod.service se nezdařilo:Jednotka mongod.service nenalezena

  3. Filtrujte podpole pole podle některých kritérií

  4. Implementujte automatické doplňování na MongoDB