[00:49:33] <mgeorge> is there a best practice configdb dir for rhel? the default selinux blocks mongodb from accessing /data/configdb/
[01:59:59] <mgeorge> so apparently to fix 2.6.5 on rhel7 to use /data/configdb you need to change the context of /data to "mongod_var_lib_t" using the semanage fcontext -a -t mongod_var_lib_t '/data(/.*)?'
[02:16:57] <mgeorge> or just use "semanage permissive -a mongod_t" which i guess is a little easier till dev's create a context "mongod_configdb_t"
[02:28:43] <Streemo> does anyone know why when I do db.posts.insert({title:'blah'}), the _id field is populated with something like ObjectId("ejlksfhskljr32kj4wjasd")
[02:29:02] <Streemo> Why is it wrapping the id in the ObjectId function?
[02:29:14] <GothAlice> http://docs.mongodb.org/manual/reference/object-id/ — technically, it's a type.
[02:37:34] <GothAlice> AFIK inserting without specifying an _id will *always* result in a true ObjectId as the value. Only if you explicitly insert a value for _id (or accidentally set it in an upsert) will it differ from this.
[02:37:57] <GothAlice> (There are very good reasons to primary key on ObjectId _ids, FYI.)
[02:46:18] <Streemo> GothAlice: when i call Framework.collection.insert(...) (from the JS framework) the resulting _id is a string. When i do it straight in mongo it's an ObjectId.
[02:46:52] <Streemo> the Framework must be wrapping some wierd thing arround that vanilla insert
[02:47:02] <Streemo> to make the _id come out as a string
[02:47:11] <GothAlice> A haaa. Your JS driver must only expose them in their encoded string form. Are results in the shell sane?
[02:55:08] <GothAlice> Note that what this documentation specifies ("random Mongo.ObjectID values") is also wholly incorrect. ObjectIds are anything but random.
[02:55:40] <Streemo> some super ultra secret mathematical algorithm?
[02:55:52] <Streemo> which for all effective purposes for the layman == random?
[03:01:54] <Streemo> "Create a Mongo-style ObjectID. If you don't specify a hexString, the ObjectID will generated randomly (not using MongoDB's ID construction rules)."
[03:06:59] <GothAlice> Streemo: Meteor Considered Harmful™ — breaks expected usage and data validation standards conformed to by every other driver/wrapper I have ever seen for every language ever.
[03:07:50] <GothAlice> I like to reinvent the wheel; but at least my wheels still conform to the expectation of being round.
[03:11:55] <lpghatguy> Most RDMS I've used implement a decimal type. Otherwise, using two integer fields (one for the integer part and one for the decimal part) is okay
[03:12:05] <GothAlice> nateritter: I store them as carefully formatted strings with some adapter glue to translate seamlessly to Python's Decimal type while still supporting querying.
[03:12:21] <GothAlice> Streemo: Pennies are not accurate enough. ;)
[03:15:10] <lpghatguy> Handling Bitcoin is what's silly since it divides so far
[03:16:16] <GothAlice> lpghatguy: Pro tip: Store the whole part of a BTC value as an integer, the decimal part as a string. ;)
[03:17:37] <lpghatguy> sounds like it'd be a pain to do numeric operations on it without a proper decimal implementation in the end
[03:18:01] <GothAlice> lpghatguy: There are some tricks and shortcuts you can use with a split representation like that. Does come down to regexen a bit, though.
[03:18:38] <GothAlice> (But the integer whole portion can be use for to limit the number of strings needing to be matched.)
[03:18:42] <nateritter> GothAlice: Why the decimal part as a string? Oh, the leading zeros… interesting
[03:20:25] <nateritter> GothAlice: that needs to be on a t-shirt… #nerdcred
[03:20:25] <GothAlice> (Python's Decimal type is string-based, internally.)
[03:21:11] <lpghatguy> All the recommendations I see just say to use cents as your currency unit instead of dollars
[03:21:39] <GothAlice> More like #hipstercode over #nerdcred. XD
[03:22:19] <GothAlice> lpghatguy: That works if you don't need to deal with smaller fractions. Just gets confusing if you start mixing cents and other subdivisions.
[03:23:25] <nateritter> GothAlice: So, back to my original question, I have this… https://gist.github.com/nateritter/7c4d025a7f30280376a4 … and I’d like to add the condition that we only aggregate those values that are greater than or equal to zero… how would I modify this?
[03:23:53] <nateritter> GothAlice: Sorry for the newb question. Took me forever to get to this point.
[03:24:16] <GothAlice> Uhm… don't try to stuff absolutely everything into a $group… that way lies madness and unexpectedly failing queries.
[03:24:37] <GothAlice> $match to select only those accounts with an amount > 0.
[03:24:38] <nateritter> heh.. ok… what’s a better route then?
[03:39:46] <GothAlice> You'll effectively be locked into only ever using the layer to interact with your DB, at least in terms of inserting records or risk mixing and matching which won't work as expected.
[03:39:58] <Boomtime> you can use anything for a _id
[03:40:00] <GothAlice> You lose useful diagnostic information.
[03:40:12] <GothAlice> If you care about record creation times, you suddenly need to add an extra field for that.
[03:41:09] <Streemo> OK. lets make it one step better, let's say I use actualy mongodb objectId's using the {idGeneration: 'mongo'} (ofc theyll have no meaning other than being a unique id, cause they lack the generation order)
[03:41:26] <Streemo> that still wouldnt fix the time problem
[03:41:44] <cheeser> they *do* have generation order, actually.
[03:41:53] <cheeser> one component of an ObjectId is the time
[03:45:26] <Streemo> geez, just say horse. why so obscure
[03:46:18] <GothAlice> darkblue_b: If you're just catching up, we discovered to our joy that Meteor generates truly random ObjectIds instead of following the spec, and defaults to random strings for _ids. That's weird.
[03:54:31] <Streemo> he said he wanted to memorize pi up to that place (maybe in the 700's if i remember right?) to recite it to people and trick them into thinking its rational
[04:15:01] <Streemo> even if yo udidnt remember all 127 if you were able to conjure 127 slightly profound statements on the fly id be impressed
[04:15:10] <GothAlice> https://gist.github.com/amcgregor/9f5c0e7b30b7fc042d81 — Collected from various sources; avoided skippy's list references with extreme difficulty. :P
[04:15:29] <GothAlice> Not very well organized, but there are several consistent themes. I need to tag them individually or something. ¬_¬
[04:15:37] <Streemo> whatttt why are the on git hub!?
[04:15:53] <GothAlice> Streemo: https://gist.github.com/amcgregor/9f5c0e7b30b7fc042d81/revisions < Revision tracking, of course.
[04:18:07] <GothAlice> A few of them, not many. Zen of Python is included wholesale, plus my common addendum. Various common project management phrases, plus a bunch of "Milspec+" quotes.
[04:31:20] <GothAlice> If you need something like that, you can pre-store soundex data (and such) numerical representations of the text for easier in-database comparison.
[04:49:11] <Streemo> thats an interesting question darkblue_b i wonder if there are ways to compute a "norm" of a string via some measure - you could probably define one. maybe even vectorize them and compute inner products for 'dissimilarity' measure.
[04:49:56] <darkblue_b> .. oh more than that.. thats how "datamining" is done.. there are many specific variations on that..
[04:50:46] <darkblue_b> I am just trying some basics on equipment I have, to get a sense of the whole
[04:50:52] <Streemo> i never knew what datamining referred to, but im sure the math behind it isnt too bad
[04:51:14] <Streemo> yeah itd be nice for a string distance thing. Write a basic one
[04:58:49] <nateritter> Where should I put a config variable that I want accessible only on the server side, and how would I access it?
[05:15:05] <Boomtime> nateritter: not sure what you mean, can you provide an intended usage of such a variable?
[05:15:45] <nateritter> no worries., figured it out…
[05:16:01] <nateritter> Boomtime: spent too much time on PHP frameworks… this JS stuff is too easy… haha
[10:01:16] <Luser> Hi guys. I am currently working on ruby script and woud like to search through the database for one phrase, but am not sure how to do that. I've seen that method: session.with(database: "db_name").command() but am not sure what to insert into command
[10:01:44] <Luser> http://mongoid.org/en/moped/docs/driver.html i am referencing to that
[14:02:12] <GothAlice> yopp: Tree structures are one of those things that MongoDB does strangely. (Then again, nested set adjacency lists in relational databases are kinda nuts, too.)
[14:02:18] <GothAlice> yopp: Let me dig up a link for you.
[14:04:05] <GothAlice> Two ways of doing "descendants" searching, by string: https://github.com/marrow/contentment/blob/develop/web/extras/contentment/components/asset/model/__init__.py#L269 or by parents list membership. (I.e. asset X is in the parents list of all children at all levels below asset X)
[14:05:20] <GothAlice> "children" is a list of child ObjectIds (to preserve order) whereas "contents" is your "single-level of children below X" query.
[14:08:41] <yopp> GothAlice, in fact I need to make a aggregation operaion for regexp. For example, in this case for $1 in ^(/a\/.*)\/(:?[^\/]+)$
[14:09:05] <yopp> but I'm trying with map/reduce right now, it might be a bit faster
[14:09:50] <yopp> But I'm not sure how to mapreduce on index only, because I don't need a full document
[14:10:09] <cheeser> m/r will almost certainly not be faster
[14:10:32] <GothAlice> yopp: Well, you didn't give an example document in your structure. Storage of coalesced string paths is unusual and inefficient; my Asset document class uses it primarily for direct lookup. (I.e. given a URL like /foo/bar look up /, /foo, and /foo/bar in reverse order, take the first, most specific element to use as the handler.)
[14:13:00] <GothAlice> yopp: In the case where ^/a/.* is your query, I'd recommend the parents list approach.
[14:15:15] <GothAlice> yopp: The "complex" structure I linked you currently contains 24TiB of data in my MongoDB cluster at home. ;) It's quite efficient.
[14:17:16] <GothAlice> yopp: ^/a/.*/[^/]+/ -> [start of string] "/a/" [one or more of any character including slash] "/" [one or more character that isn't slash] "/" -> /a///////////////27/ is valid.
[14:19:27] <yopp> in my case path name is normalized, and there no way that path will have more than one consequential slash
[14:19:48] <yopp> so even so, ^a\/[^\/]\/[^\/]+ will be enough
[14:20:03] <GothAlice> yopp: I'm suggesting that such a method of storage is inefficient and unnessicariy in a system that provides rich list types. What does that string represent, exactly?
[14:20:16] <GothAlice> yopp: That string represents a series of parent element references in the form of a path.
[14:20:59] <yopp> Anyway, there no way to change structure of document
[14:21:15] <yopp> If this will make things simplier for you. I have what I have :)
[14:23:21] <GothAlice> yopp: It makes things more complex, difficult, inefficient, and painful, actually. It is the wrong representation for the data based on how you wish to query it. (Which is what MongoDB *actually* cares about.) Unfortunately I need to transition networks in a moment. Be back in a bit.
[16:09:38] <ryanwmedlin> in sql you run it througha convertUTC function as part of the query and do a group by day on that
[16:10:14] <GothAlice> ryanwmedlin: MongoDB doesn't provide functions like that. Instead of passing in localtime references to the query and hoping MongoDB has a way to make those UTC, *make those values UTC in your code*, not MongoDB.
[16:10:37] <GothAlice> I.e. never pass anything to MongoDB that isn't in UTC.
[16:11:19] <GothAlice> ryanwmedlin: Note from my link that I needed to work with ISO DOTW, but MongoDB doesn't use the standard ISO representation, so I converted them *outside* MongoDB.
[16:11:25] <ryanwmedlin> so get the raw data then group by on the server for their timezone?
[16:13:12] <GothAlice> ryanwmedlin: Show me (pastebin) your current query.
[16:16:00] <GothAlice> ryanwmedlin: (P-code is good too; it doesn't have to work, I just need a better picture of exactly what you're trying to do. SQL would be good, too, if you only have that.)
[16:19:29] <GothAlice> http://docs.mongodb.org/manual/reference/operator/aggregation-date/ are the sum total of currently available operations on dates.
[16:19:52] <GothAlice> (Timezones are effectively unsupported at this level.)
[16:21:24] <ryanwmedlin> so if your ont he west coast.. want ot group by day by using dayOfMonth.. your basically getting 7 hours of data you dont want? because mongo will group by the UTC data in the db?
[16:21:37] <ryanwmedlin> im trying to pull a query now thanks for the replies btw
[16:29:32] <niczak> This may sound crazy, but what if I make a secondary replica set the primary w/o running the touch command? Will things just load slowly at first until they find their way into memory or will there be other side effects?
[16:31:17] <GothAlice> niczak: Any time you swap primaries there is the possibility of completely rebuilding the new secondaries (i.e. having each pull a complete copy of the dataset from the new primary). This can hose your network a bit while things re-settle.
[16:31:48] <niczak> Goth: Ahh, okay, defintiely want to avoid that. So running the touch command will ensure that everything is "warmed up" and ready to go?
[16:31:51] <GothAlice> (Usually only happens if the oplog becomes so out-of-sync that there is no commonality between them.)
[16:31:58] <niczak> So I can do the touch stuff, then swap primaries?
[16:54:38] <niczak> Dataset can definitely fit into RAM but I am thinking about letting the application warm up the database by just running it's most typical queries.
[18:08:09] <GothAlice> Where "date" is the name of the field. If this is embedded under "ticket_answers" the solution becomes: db.collection.find({"ticket_answers.date": {$gt: someDate, $lt: someOtherDate}})
[18:10:36] <joaovagner> however it still fails, I do not know how to turn that into something that your query PHP understands. :(
[18:10:42] <GothAlice> joaovagner: Oh. If you only want the nested records that match back (i.e. not the whole top-level document) you're going to have to turn that into an aggregate query with $match, $unwind, and $match stages.
[18:11:17] <GothAlice> Unfortunately I don't PHP. (And feel nobody else should either.) So I can't really help you with the specific syntax.
[18:12:05] <GothAlice> (Not being able to help with the syntax comes down to not knowing the syntax. Personal preference is just a nice bonus. ;)
[18:13:18] <GothAlice> I'm sure you've seen http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ by now. :3 Back in the day I ran into some hilarious issues with the str_parse function being exactly the same as register globals. ^_^;
[18:14:11] <GothAlice> (Oh, and that was parse_str, not str_parse, illustrating one of the many points from that article. ;^)
[18:19:09] <mike_edmr> php was the first/best at some things and has since grown large but without fixing the issues that make it a poor basis for what it is today
[18:19:43] <cheeser> i don't know that it was the first/best at anything really
[18:19:46] <GothAlice> I <3 Python so much in that it can produce better interpreters for other languages than the other languages' native runtimes.
[18:19:51] <joaovagner> mike_edmr: at all scales. PHP for command line tools composes, (dependencie manager), web, and other things. Despite being in love with Python, who pays the bills is PHP :)
[18:20:00] <GothAlice> PHP took the C global namespace and exposed it through a template language. That's it, and really, all PHP is.
[18:20:11] <cheeser> funny. that's how I feel about python. :)
[18:20:12] <mike_edmr> php shouldnt be used for new projects
[18:20:14] <GothAlice> joaovagner: Yeesh, you use PHP for command-line scripts?!
[18:20:53] <GothAlice> cheeser: from concurrent.futures import ThreadPoolExecutor; with ThreadPoolExecutor(10) as e: e.submit(print, "Hello world!") — BAM, multithreading.
[18:20:56] <joaovagner> Você quis dizer: O PHP para o cliente fecha a conta de custo x benefícios.
[18:20:56] <joaovagner> PHP for the customer closes the account of cost vs. benefits.
[18:20:57] <darkblue_b> I am a senior editor for a linux "distribution" with over 50 FOSS projects.. php is used in a small number, and that number is getting smaller
[18:21:28] <darkblue_b> several language groups are strong, very much including python
[18:21:41] <joaovagner> GothAlice: php-cli yes, including those famous crontab tasks ... I have great applications integrating with the API ingresse.com site and Amazon Web Services
[18:21:45] <GothAlice> (Replace ThreadPoolExecutor with ProcessPoolExecutor and you have split-process deferred execution.)
[18:22:34] <joaovagner> GothAlice: The consultancy work which manages the Route53 all customers via panel with AWS;
[18:23:06] <joaovagner> However we have applications in other languages like java / python doing work BigData.
[18:23:11] <GothAlice> joaovagner: Let me introduce you to Boto… ;)
[18:24:20] <GothAlice> (This library is how we automate the AWS infrastructure we use.)
[18:24:43] <joaovagner> GothAlice: The biggest problem here in Brazil is keeping these things, because the enormous difficulty of keeping a team in Python. The canonical came and stole our best :(
[18:25:13] <GothAlice> I have the benefit of living in the Python capitol of Canada.
[18:25:21] <joaovagner> PHP community in Brazil is great and is not hard to keep the project with a team keeping. There is no difficulty in keeping projects in PHP due to cost x benefit. In python costs outweigh benefits.
[18:25:59] <GothAlice> (Last PyCon was here, next PyCon will be here, prior to that several years straight of Confoo, etc., etc. Quite the community here.)
[18:26:10] <joaovagner> cheeser: Regina's own name in the Portuguese language
[18:28:48] <GothAlice> cheeser: “I don’t trust your coffee. Had the last batch sent off to a lab and the results came back: congratulations, your moose is pregnant.”
[18:28:55] <joaovagner> Here in Brazil, the summer heat had a hug :D
[18:30:08] <GothAlice> joaovagner: Lived in Panama for a while; it's not the heat that gets me, it's the constant 95% humidity.
[18:31:28] <joaovagner> GothAlice: it's hard to live like this hehehehehe
[18:31:45] <GothAlice> Ciesta makes up for it. ;^P
[18:32:39] <joaovagner> kkkkkkkkk ciesta who did was my grandfather, of Italian descent. I always thought it a lazy!
[18:33:33] <GothAlice> Science agrees that a nap in the afternoon can actually increase productivity through improved alertness and problem solving abilities. Recharging is good for you.
[18:36:12] <joaovagner> GothAlice: I awake to 05am, I'll run and go to the gym, according to my wife, I take the kids to school, it all before 09am. Most people who know the awakened 09am. I'll have plenty of time to rest when you die. hhahahhahaha
[18:36:45] <GothAlice> That didn't translate well, but I think I got the gist of it. ;)
[18:40:41] <unholycrab> well, the one was only falling behind while there was heavy write load to the primary
[18:40:43] <joaovagner> the log most of the time, contains details of the problems
[18:40:46] <unholycrab> it caught up almost immeidately after
[18:41:50] <joaovagner> GothAlice: how long works with Mongo?
[18:42:05] <GothAlice> joaovagner: I've been using it for a number of years now.
[18:42:58] <GothAlice> joaovagner: amcgregor@chomolungma ~ $ uptime # 11:41:43 up 956 days < maybe a year or two longer than that (this is the uptime from the primary of my larger cluster)
[18:44:39] <joaovagner> I wrote only three applications with Mongo, taking the experience yet. And breaking my head :)
[18:45:14] <GothAlice> MongoDB does open your mind to new possibilities for data design, which can be somewhat mind-blowing when you realize the things you can do. :D
[18:47:44] <unholycrab> uptime # 11:41:43 up 956 days
[18:47:47] <joaovagner> GothAlice: indeed, the concept of breaking paradigms NoSQL, did a project a while ago with Java and Neo4j. It's wonderful are old and new concepts while
[18:48:40] <GothAlice> unholycrab: You may be inferring that the kernel has never been upgraded, but it has. Total downtime due to hot upgrades year-to-date of about 15 seconds service level interruption.
[18:48:54] <hexsprite> hey if I want to sort by multiple keys then what's the syntax? for example I want to sort first by "order" and then by "list"... I tried {sort: {order:1, list:1}} but it seems to sort by list first and then order....
[18:49:40] <GothAlice> hexsprite: Depending on your language, your dictionary/mapping/object type might not preserve the order of keys, which would mess up your sort.
[18:50:38] <hexsprite> GothAlice: thanks, i just realized this is probably a meteor specific issue because they wrap the mongodb api... asking on #meteor instead ;)
[18:52:45] <unholycrab> just looked it up. cool GothAlice
[18:53:27] <GothAlice> unholycrab: There are a lot of edge cases to an approach like this, though. Like every counter in the system eventually rolling back around to zero. (Notably network packet and bandwidth counters.)
[19:19:01] <GothAlice> Montréal gets the extremes of heat in the summer, cold in the winter. I prefer British Columbia; sure, you get rain like it's foggy old England, but it's never too hot and never too cold.
[19:19:47] <kali> yeah, BC is like canada's california :)
[19:19:57] <GothAlice> And Alberta is Canada's Texas.
[19:19:58] <cheeser> joaovagner: very cold parts of the year
[19:25:46] <joaovagner> oror other regions of Canada
[19:26:51] <GothAlice> I became so used to the cold just below the arctic circle (Dawson Creek, BC, no relation to Dawsons Creek, the TV show) that at -60°C I was standing outside, barefoot in PJs to smoke. Didn't even notice how cold it was.
[19:27:00] <joaovagner> Devops Senior, 9 years experience in web (php, javascript, api's rest, etc), and infra-estructure (aws, load balancer's, etc)
[19:27:11] <GothAlice> joaovagner: http://www.payscale.com/research/CA/Job=Web_Developer/Salary/4e4b559e/Montréal-QC and http://www.glassdoor.com/Salaries/montreal-software-developer-salary-SRCH_IL.0,8_IM990_KO9,27.htm
[19:27:32] <GothAlice> (There are so many developers in Montréal it lowers the median.)
[19:28:01] <joaovagner> my country in the recent elections elected a communist government that is destroying our economy. I intend to leave the country for a period escape it. :(
[21:03:37] <bpap> what is the difference between mongodump and mongoexport? more specifically, i want to dump a 7G collection as quickly as possible (consistency not needed). which tool should i use?
[21:04:33] <cheeser> mongodump will output the bson. mongoexport would write to json/tsv/csv
[21:05:08] <bpap> ah, so the only difference is the output format? seems like they could have been combined into one tool, no?
[21:08:05] <niczak> I have a replica set with two nodes which are completely in sync. My goal is to make the current secondary the primary and then shutdown the current primary node because we are retiring that server. Following this guide: http://docs.mongodb.org/manual/tutorial/force-member-to-be-primary/ it not working for me, can someone tell me the best/easiest way to make a secondary the primary and remove any references (or just hide) the original primary?
[21:09:21] <niczak> It seems like this should be a pretty common use case.
[21:13:25] <kali> niczak: just ask the primary to stepDown(), the secondary will get elected primary.
[21:13:31] <kali> niczak: do you have an arbiter ?
[21:24:54] <Trindaz> MySQL is to SQLite as MongoDB is to ___
[21:25:23] <GothAlice> Considering that SQLite is also effectively schema-free…
[21:25:37] <Trindaz> How do I write unit tests for code that accesses a MongoDB instance without needing a running MongoDB instance to run the unit tests
[21:25:51] <GothAlice> Trindaz: You run a MongoDB instance for the life of the tests.
[21:27:10] <GothAlice> Trindaz: Consider https://github.com/marrow/marrow.task/blob/develop/.travis/install.sh which is part of my overall Travis CI integration: https://github.com/marrow/marrow.task/blob/develop/.travis.yml#L10
[21:27:33] <niczak> Kali: Oh wow, that's easy! I actually just changed priorities, removed primary from rs and then secondary became primary and all i well.
[21:27:37] <niczak> God Mongo is magical sometimes.
[21:27:40] <GothAlice> Trindaz: Locally I use Vagrant to run my tests under a VM (with local mongod).
[21:28:17] <GothAlice> niczak: It's explicitly documented that candidates for election are first ordered by priority; as long as there exists one alive node with a priority of 10, no lower priority nodes will even be considered.
[21:29:16] <GothAlice> Any sufficiently advanced technology is indistinguishable from magic. :)
[21:34:13] <Trindaz> what a bummer. I was really hoping there'd be a file-system only node.js library that would let me do this. (https://github.com/openhoat/mongodb-fs looked promising but it broke pretty badly for me)
[21:35:03] <GothAlice> Trindaz: In order to properly mock MongoDB you would have to reimplement nearly all of MongoDB, sadly. It's easier to just spin up mongod on a random local port, expose the port number as an environment variable, and have your tests use it.
[21:37:41] <GothAlice> Where 64624 is the result of generating a random number.
[21:38:28] <GothAlice> It's especially easy if your test runner also has good fixture support: https://github.com/marrow/marrow.task/blob/develop/test/model/conftest.py#L9-L14 (with a different scope, I could have this spin up and automatically shut down mongod processes… this just nukes the test db itself between tests.)
[21:42:22] <kali> GothAlice: and any technology distringuisable from magic is insufficiently advanced.
[21:42:29] <GothAlice> https://github.com/mongodb/mongo-python-driver/blob/master/test/__init__.py — pymongo's own tests use environment variables to pass in the test server info.
[21:42:38] <niczak> Have to jet but as always, thanks for the insight all.
[21:51:35] <pluffsy> Very newbie question, sorry: I would like to just pass json objects as querys to mongodb. That works fine with simple key value pairs {"x": "y"}, but can I somehow express the $operators as valid json?
[21:54:08] <Boomtime> The $ operators are already valid JSON, perhaps provide an example of what you want to do
[21:54:12] <GothAlice> pluffsy: Valid JSON requires that you quote the strings used as keys, this means "$gt" and such are completely valid keys.
[21:55:07] <GothAlice> pluffsy: E.g. {"age": {"$gte": 18, "$lt": 30}}
[21:55:28] <pluffsy> ahh, sorry. that explains why I didn’t find anything on google. I was so sure it was invalid, should have tested of course. thanks a lot GothAlice and Boomtime
[21:55:54] <GothAlice> pluffsy: No worries; it never hurts to help. :)
[22:47:31] <Boomtime> A physical container for collections. Each database gets its own set of files on the file system. A single MongoDB server typically has multiple databases.