sql >> Database teknologi >  >> NoSQL >> MongoDB

Metode fungerer i udvikling, men ikke produktion Rails MongoDB

Hvis du har en Coupon Mongoid-model, så ville samlingen i MongoDB-skallen være db.coupons . Det ville forklare hvorfor:

db.Coupon.insert(...)

i MongoDB-skallen giver ikke det, du forventer at finde i din Rails-kode.

For så vidt angår Neils kommentar om $exists versus eksplicit nil checks går, jeg tror virkelig, du vil have nil (AKA null inde i MongoDB) kontroller. Overvej dette i MongoDB-skallen:

> db.models.insert({ n: 11 })
> db.models.insert({ n: 0 })
> db.models.insert({ n: null })
> db.models.insert({ })
> db.models.find()
{ "_id" : ObjectId("571546e1ce2934dadf379479"), "n" : 11 }
{ "_id" : ObjectId("571546e4ce2934dadf37947a"), "n" : 0 }
{ "_id" : ObjectId("571546e7ce2934dadf37947b"), "n" : null }
{ "_id" : ObjectId("571546ecce2934dadf37947c") }

Så vi har en samling med dokumenter, der har n , har ikke n , har eksplicit null værdier for n , og ikke-null værdier for n .

Så kan vi se forskellen mellem Mongoid-forespørgsler som :n => nil :

> db.models.find({ n: null })
{ "_id" : ObjectId("571546e7ce2934dadf37947b"), "n" : null }
{ "_id" : ObjectId("571546ecce2934dadf37947c") }

og :n.exists => true (AKA :n => { :$exists => true } ):

> db.models.find({ n: { $exists: true } })
{ "_id" : ObjectId("571546e1ce2934dadf379479"), "n" : 11 }
{ "_id" : ObjectId("571546e4ce2934dadf37947a"), "n" : 0 }
{ "_id" : ObjectId("571546e7ce2934dadf37947b"), "n" : null }

og :n => { :$exists => false } :

> db.models.find({ n: { $exists: false } })
{ "_id" : ObjectId("571546ecce2934dadf37947c") }

:expires_at => nil forespørgsler vil finde dokumenter, der ikke har en expires_at samt dokumenter, hvor expires_at blev udtrykkeligt sat til nil . Begge disse tilfælde vil ske med Mongoid, medmindre du er omhyggelig med at kalde remove_attribute i stedet for at tildele en nil og begge tilfælde betyder "ingen udløbsdato".




  1. Mongolab kunne ikke forbindes med MongodbShell

  2. Virker `$eq`-operatoren med array dot notation?

  3. Mongoose, indeks placeringer array

  4. Node redis-udgiver bruger for meget hukommelse