Skip to content

Instantly share code, notes, and snippets.

@timuruski
Created November 4, 2010 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timuruski/663406 to your computer and use it in GitHub Desktop.
Save timuruski/663406 to your computer and use it in GitHub Desktop.
require 'mongo_mapper'
require 'yaml'
MongoMapper.database = 'tmp'
class Foo
include MongoMapper::Document
key :name, String
end
Foo.collection.remove
8.times { Foo.create(:name => 'foo') }
4.times { Foo.create(:name => '') }
2.times { Foo.create() }
puts "Total : #{MongoMapper.database.eval('db.foos.count()')}"
puts "name = foo : #{MongoMapper.database.eval('db.foos.count({name: \'foo\'})')}"
puts "name = '' : #{MongoMapper.database.eval('db.foos.count({name: \'\'})')}"
puts "name = null : #{MongoMapper.database.eval('db.foos.count({name: null})')}"
# puts "name = nil: #{MongoMapper.database.eval('db.foos.count({name: {$ne: \'foo\'}})')}"
# puts MongoMapper.database.eval('db.foos.count({name: {$ne: \'foo\'}})')
puts '--'
puts Foo.collection.group(['name'], {'name' => {'$ne' => {'$nin' => [nil,'']}}}, {'sum' => 0}, "function(doc, prev) { prev.sum += 1}", nil).to_yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment