sql >> Databasteknik >  >> NoSQL >> MongoDB

Kör avancerade MongoDB-frågor i R med rmongodb

Antingen c() eller list() kan vara ok. Beror på om komponenterna är namngivna och om de alla har samma typ (för lista). Det bästa du kan göra är att titta på den genererade BSON och se om du får det du vill ha. För bästa kontroll över det genererade objektet använd mongo.bson.buffer och de funktioner som fungerar på det. Det är faktiskt därför underfrågorna misslyckas. "kommentarer" skapas som ett underobjekt snarare än en array. mongo.bson.from.list() är praktiskt men det ger dig inte samma kontroll och ibland gissar det fel om vad som ska genereras från komplicerade strukturer.

Frågan på den andra datauppsättningen kan korrigeras så här:

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)

Observera att du definitivt behöver använda en buffert här eftersom R kommer att strypa på det prickade namnet.

Jag hoppas att detta löser ditt problem. Meddela mig om du har ytterligare frågor.



  1. Hur gör man icke-CRUD och icke-grundläggande MongoDB-kommandon i ObjCMongoDB?

  2. Hur kan jag använda Python för att omvandla MongoDB:s bsondump till JSON?

  3. Importerar JSON-fil med mongimport, fortsätter du att få `oväntad identifierare`?

  4. MongoDB - Retur-id för insatt artikel