asp.net web api 2 for mvc developers pdf : Merge pdf files control application system web page html wpf console mongodb_%20the%20definitive%20guide%20-%20kristina%20chodorow_14013-part1775

{"greeting" : "Hello, world!"}
{"foo" : 5}
Note that the previous documents not only have different types for their values (string
versus integer) but also have entirely different keys. Because any document can be put
into any collection, the question often arises: “Why do we need separate collections at
all?” It’s a good question—with no need for separate schemas for different kinds of
documents, why should we use more than one collection? There are several good
reasons:
• Keeping different kinds of documents in the same collection can be a nightmare
for developers and admins. Developers need to make sure that each query is only
returning documents of a certain type or that the application code performing a
query can handle documents of different shapes. If we’re querying for blog posts,
it’s a hassle to weed out documents containing author data.
• It is much faster to get a list of collections than to extract a list of the types in a
collection. For example, if we had a "type" field in each document that specified
whether the document was a “skim,” “whole,” or “chunky monkey,” it would be much
slower to find those three values in a single collection than to have three separate
collections and query the correct collection.
• Grouping documents of the same kind together in the same collection allows for
data locality. Getting several blog posts from a collection containing only posts will
likely require fewer disk seeks than getting the same posts from a collection con‐
taining posts and author data.
• We begin to impose some structure on our documents when we create indexes.
(This is especially true in the case of unique indexes.) These indexes are defined per
collection. By putting only documents of a single type into the same collection, we
can index our collections more efficiently.
As you can see, there are sound reasons for creating a schema and for grouping related
types of documents together, even though MongoDB does not enforce it.
Naming
A collection is identified by its name. Collection names can be any UTF-8 string, with
a few restrictions:
• The empty string ("") is not a valid collection name.
• Collection names may not contain the character \0 (the null character) because
this delineates the end of a collection name.
• You should not create any collections that start with system., a prefix reserved for
internal collections. For example, the system.users collection contains the database’s
Collections | 9
Merge pdf files - Merge, append PDF files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provide C# Demo Codes for Merging and Appending PDF Document
add two pdf files together; break a pdf into multiple files
Merge pdf files - VB.NET PDF File Merge Library: Merge, append PDF files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Guide and Sample Codes to Merge PDF Documents in .NET Project
combine pdfs online; combine pdf files
users, and the system.namespaces collection contains information about all of the
database’s collections.
• User-created collections should not contain the reserved character $ in the name.
The various drivers available for the database do support using $ in collection names
because some system-generated collections contain it. You should not use $ in a
name unless you are accessing one of these collections.
Subcollections
One convention for organizing collections is to use namespaced subcollections sepa‐
rated by the . character. For example, an application containing a blog might have a
collection named blog.posts and a separate collection named blog.authors. This is for
organizational purposes only—there is no relationship between the blog collection (it
doesn’t even have to exist) and its “children.”
Although subcollections do not have any special properties, they are useful and incor‐
porated into many MongoDB tools:
• GridFS, a protocol for storing large files, uses subcollections to store file metadata
separately from content chunks (see Chapter 6 for more information about GridFS).
• Most drivers provide some syntactic sugar for accessing a subcollection of a given
collection. For example, in the database shell, db.blog will give you the blog col‐
lection, and db.blog.posts will give you the blog.posts collection.
Subcollections are a great way to organize data in MongoDB, and their use is highly
recommended.
Databases
In addition to grouping documents by collection, MongoDB groups collections into
databases. A single instance of MongoDB can host several databases, each grouping
together zero or more collections. A database has its own permissions, and each database
is stored in separate files on disk. A good rule of thumb is to store all data for a single
application in the same database. Separate databases are useful when storing data for
several application or users on the same MongoDB server.
Like collections, databases are identified by name. Database names can be any UTF-8
string, with the following restrictions:
• The empty string ("") is not a valid database name.
• A database name cannot contain any of these characters: /, \, ., ", *, <, >, :, |, ?, $, (a
single space), or \0 (the null character). Basically, stick with alphanumeric ASCII.
10 | Chapter 2: Getting Started
Online Merge PDF files. Best free online merge PDF tool.
Online Merge PDF, Multiple PDF files into one. Download Free Trial. Easy converting! We try to make it as easy as possible to merge your PDF files.
acrobat merge pdf; merge pdf online
C# PDF File Split Library: Split, seperate PDF into multiple files
Also able to combine generated split PDF document files with other PDF files to form a new PDF file. Split PDF Document into Multiple PDF Files in C#.
pdf combine two pages into one; batch pdf merger online
• Database names are case-sensitive, even on non-case-sensitive filesystems. To keep
things simple, try to just use lowercase characters.
• Database names are limited to a maximum of 64 bytes.
One thing to remember about database names is that they will actually end up as files
on your filesystem. This explains why many of the previous restrictions exist in the first
place.
There are also several reserved database names, which you can access but which have
special semantics. These are as follows:
admin
This is the “root” database, in terms of authentication. If a user is added to the admin
database, the user automatically inherits permissions for all databases. There are
also certain server-wide commands that can be run only from the admin database,
such as listing all of the databases or shutting down the server.
local
This database will never be replicated and can be used to store any collections that
should be local to a single server (see Chapter 9 for more information about repli‐
cation and the local database).
config
When MongoDB is being used in a sharded setup (see Chapter 13), it uses the config
database to store information about the shards.
By concatenating a database name with a collection in that database you can get a fully
qualified collection name called a namespace. For instance, if you are using the blog.posts
collection in the cms database, the namespace of that collection would be
cms.blog.posts. Namespaces are limited to 121 bytes in length and, in practice, should
be fewer than 100 bytes long. For more on namespaces and the internal representation
of collections in MongoDB, see Appendix B.
Getting and Starting MongoDB
MongoDB is almost always run as a network server that clients can connect to and
perform operations on. Download MongoDB and decompress it. To start the server,
run the mongod executable:
mongod
mongod --help for help and startup options
Thu Oct 11 12:36:48 [initandlisten] MongoDB starting : pid=2425 port=27017 
dbpath=/data/db/ 64-bit host=spock
Thu Oct 11 12:36:48 [initandlisten] db version v2.4.0, pdfile version 4.5
Thu Oct 11 12:36:48 [initandlisten] git version: 
3aaea5262d761e0bb6bfef5351cfbfca7af06ec2
Thu Oct 11 12:36:48 [initandlisten] build info: Darwin spock 11.2.0 Darwin Kernel
Getting and Starting MongoDB | 11
C# TIFF: C#.NET Code to Merge and Append TIFF Files
string[] tifFiles = new string[] { @"C:\demo1.tif", @"C:\demo2.tif" }; // Merge these Tiff files to a single Tiff file and save it to output.tif.
all jpg to one pdf converter; add multiple pdf files into one online
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
' Convert PDF file to HTML5 files DocumentConverter.ConvertToHtml5("..\1.pdf", "..output\", RelativeType.SVG). Copyright © <2000-2016> by <RasterEdge.com>.
add pdf pages together; pdf combine files online
Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; 
root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_48
Thu Oct 11 12:36:48 [initandlisten] options: {}
Thu Oct 11 12:36:48 [initandlisten] journal dir=/data/db/journal
Thu Oct 11 12:36:48 [initandlisten] recover : no journal files present, no 
recovery needed
Thu Oct 11 12:36:48 [websvr] admin web console waiting for connections on 
port 28017
Thu Oct 11 12:36:48 [initandlisten] waiting for connections on port 27017
Or if you’re on Windows, run this:
$ mongod.exe
For detailed information on installing MongoDB on your system, see
Appendix A.
When run with no arguments, mongod will use the default data directory, /data/db/ (or
\data\db\ on the current volume on Windows). If the data directory does not already
exist or is not writable, the server will fail to start. It is important to create the data
directory (e.g., mkdir -p /data/db/) and to make sure your user has permission to write
to the directory before starting MongoDB.
On startup, the server will print some version and system information and then begin
waiting for connections. By default MongoDB listens for socket connections on port
27017. The server will fail to start if the port is not available—the most common cause
of this is another instance of MongoDB that is already running.
mongod also sets up a very basic HTTP server that listens on a port 1,000 higher than
the main port, in this case 28017. This means that you can get some administrative
information about your database by opening a web browser and going to http://local
host:28017.
You can safely stop mongod by typing Ctrl-C in the shell that is running the server.
For more information on starting or stopping MongoDB, see Chap‐
ter 20.
Introduction to the MongoDB Shell
MongoDB comes with a JavaScript shell that allows interaction with a MongoDB in‐
stance from the command line. The shell is useful for performing administrative
12 | Chapter 2: Getting Started
C# Word - Merge Word Documents in C#.NET
File: Merge Word Files. |. Home ›› XDoc.Word ›› C# Word: Merge Word Files. Combine and Merge Multiple Word Files into One Using C#.
add pdf files together; apple merge pdf
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
How to Use C#.NET Demo Code to Convert PDF Document to HTML5 Files in C#.NET Class. Add necessary references: RasterEdge.Imaging.Basic.dll.
add pdf files together online; pdf merge
functions, inspecting a running instance, or just playing around. The mongo shell is a
crucial tool for using MongoDB and is used extensively throughout the rest of the text.
Running the Shell
To start the shell, run the mongo executable:
$ mongo
MongoDB shell version: 2.4.0
connecting to: test
>
The shell automatically attempts to connect to a MongoDB server on startup, so make
sure you start mongod before starting the shell.
The shell is a full-featured JavaScript interpreter, capable of running arbitrary JavaScript
programs. To illustrate this, let’s perform some basic math:
> x = 200
200
> x / 5;
40
We can also leverage all of the standard JavaScript libraries:
> Math.sin(Math.PI / 2);
1
> new Date("2010/1/1");
"Fri Jan 01 2010 00:00:00 GMT-0500 (EST)"
> "Hello, World!".replace("World""MongoDB");
HelloMongoDB!
We can even define and call JavaScript functions:
> function factorial (n) {
... if (n <= 1return 1;
... return n * factorial(n - 1);
... }
> factorial(5);
120
Note that you can create multiline commands. The shell will detect whether the Java‐
Script statement is complete when you press Enter. If the statement is not complete, the
shell will allow you to continue writing it on the next line. Pressing Enter three times in
a row will cancel the half-formed command and get you back to the >-prompt.
A MongoDB Client
Although the ability to execute arbitrary JavaScript is cool, the real power of the shell
lies in the fact that it is also a standalone MongoDB client. On startup, the shell connects
to the test database on a MongoDB server and assigns this database connection to the
Introduction to the MongoDB Shell | 13
C# PowerPoint - Merge PowerPoint Documents in C#.NET
File: Merge PowerPoint Files. |. Home ›› XDoc.PowerPoint ›› C# PowerPoint: Merge PowerPoint Files. C# DLLs: Merge PowerPoint Files.
c# merge pdf files into one; c# merge pdf
VB.NET PDF File Split Library: Split, seperate PDF into multiple
splitter control provides VB.NET developers an easy to use solution that they can split target multi-page PDF document file to one-page PDF files or they can
pdf merge files; append pdf files reader
global variable db. This variable is the primary access point to your MongoDB server
through the shell.
To see the database db is currently assigned to, type in db and hit Enter:
> db
test
The shell contains some add-ons that are not valid JavaScript syntax but were imple‐
mented because of their familiarity to users of SQL shells. The add-ons do not provide
any extra functionality, but they are nice syntactic sugar. For instance, one of the most
important operations is selecting which database to use:
> use foobar
switched to db foobar
Now if you look at the db variable, you can see that it refers to the foobar database:
> db
foobar
Because this is a JavaScript shell, typing a variable will convert the variable to a string
(in this case, the database name) and print it.
Collections can be accessed from the db variable. For example, db.baz returns the baz
collection in the current database. Now that we can access a collection in the shell, we
can perform almost any database operation.
Basic Operations with the Shell
We can use the four basic operations, create, read, update, and delete (CRUD) to ma‐
nipulate and view data in the shell.
Create
The insert function adds a document to a collection. For example, suppose we want
to store a blog post. First, we’ll create a local variable called post that is a JavaScript
object representing our document. It will have the keys "title", "content", and "date"
(the date that it was published):
> post = {"title" : "My Blog Post",
... "content" : "Here's my blog post.",
... "date" : new Date()}
{
"title" : "My Blog Post",
"content" : "Here's my blog post.",
"date" : ISODate("2012-08-24T21:12:09.982Z")
}
This object is a valid MongoDB document, so we can save it to the blog collection using
the insert method:
14 | Chapter 2: Getting Started
> db.blog.insert(post)
The blog post has been saved to the database. We can see it by calling find on the
collection:
> db.blog.find()
{
"_id" : ObjectId("5037ee4a1084eb3ffeef7228"),
"title" : "My Blog Post",
"content" : "Here's my blog post.",
"date" : ISODate("2012-08-24T21:12:09.982Z")
}
You can see that an "_id" key was added and that the other key/value pairs were saved
as we entered them. The reason for the sudden appearance of the "_id" field is explained
at the end of this chapter.
Read
find and findOne can be used to query a collection. If we just want to see one document
from a collection, we can use findOne:
> db.blog.findOne()
{
"_id" : ObjectId("5037ee4a1084eb3ffeef7228"),
"title" : "My Blog Post",
"content" : "Here's my blog post.",
"date" : ISODate("2012-08-24T21:12:09.982Z")
}
find and findOne can also be passed criteria in the form of a query document. This will
restrict the documents matched by the query. The shell will automatically display up to
20 documents matching a find, but more can be fetched. See Chapter 4 for more in‐
formation on querying.
Update
If we would like to modify our post, we can use update. update takes (at least) two
parameters: the first is the criteria to find which document to update, and the second is
the new document. Suppose we decide to enable comments on the blog post we created
earlier. We’ll need to add an array of comments as the value for a new key in our
document.
The first step is to modify the variable post and add a "comments" key:
> post.comments = []
[  ]
Then we perform the update, replacing the post titled “My Blog Post” with our new
version of the document:
> db.blog.update({title : "My Blog Post"}, post)
Introduction to the MongoDB Shell | 15
Now the document has a "comments" key. If we call find again, we can see the new key:
> db.blog.find()
{
"_id" : ObjectId("5037ee4a1084eb3ffeef7228"),
"title" : "My Blog Post",
"content" : "Here's my blog post.",
"date" : ISODate("2012-08-24T21:12:09.982Z"),
"comments" : [ ]
}
Delete
remove permanently deletes documents from the database. Called with no parameters,
it removes all documents from a collection. It can also take a document specifying
criteria for removal. For example, this would remove the post we just created:
> db.blog.remove({title : "My Blog Post"})
Now the collection will be empty again.
Data Types
The beginning of this chapter covered the basics of what a document is. Now that you
are up and running with MongoDB and can try things on the shell, this section will dive
a little deeper. MongoDB supports a wide range of data types as values in documents.
In this section, we’ll outline all the supported types.
Basic Data Types
Documents in MongoDB can be thought of as “JSON-like” in that they are conceptually
similar to objects in JavaScript. JSON is a simple representation of data: the specification
can be described in about one paragraph (their website proves it) and lists only six data
types. This is a good thing in many ways: it’s easy to understand, parse, and remember.
On the other hand, JSON’s expressive capabilities are limited because the only types are
null, boolean, numeric, string, array, and object.
Although these types allow for an impressive amount of expressivity, there are a couple
of additional types that are crucial for most applications, especially when working with
a database. For example, JSON has no date type, which makes working with dates even
more annoying than it usually is. There is a number type, but only one—there is no way
to differentiate floats and integers, never mind any distinction between 32-bit and 64-
bit numbers. There is no way to represent other commonly used types, either, such as
regular expressions or functions.
MongoDB adds support for a number of additional data types while keeping JSON’s
essential key/value pair nature. Exactly how values of each type are represented varies
16 | Chapter 2: Getting Started
by language, but this is a list of the commonly supported types and how they are rep‐
resented as part of a document in the shell. The most common types are:
null
Null can be used to represent both a null value and a nonexistent field:
{"x" : null}
boolean
There is a boolean type, which can be used for the values true and false:
{"x" : true}
number
The shell defaults to using 64-bit floating point numbers. Thus, these numbers look
“normal” in the shell:
{"x" : 3.14}
or:
{"x" : 3}
For integers, use the NumberInt or NumberLong classes, which represent 4-byte or
8-byte signed integers, respectively.
{"x" : NumberInt("3")}
{"x" : NumberLong("3")}
string
Any string of UTF-8 characters can be represented using the string type:
{"x" : "foobar"}
date
Dates are stored as milliseconds since the epoch. The time zone is not stored:
{"x" : new Date()}
regular expression
Queries can use regular expressions using JavaScript’s regular expression syntax:
{"x" : /foobar/i}
array
Sets or lists of values can be represented as arrays:
{"x" : ["a""b", "c"]}
embedded document
Documents can contain entire documents embedded as values in a parent
document:
{"x" : {"foo" : "bar"}}
Data Types | 17
object id
An object id is a 12-byte ID for documents. See the section “_id and ObjectIds” on
page 20 for details:
{"x" : ObjectId()}
There are also a few less common types that you may need, including:
binary data
Binary data is a string of arbitrary bytes. It cannot be manipulated from the shell.
Binary data is the only way to save non-UTF-8 strings to the database.
code
Queries and documents can also contain arbitrary JavaScript code:
{"x" : function() { /* ... */ }}
There are a few types that are mostly used internally (or superseded by other types).
These will be described in the text as needed.
For more information on MongoDB’s data format, see Appendix B.
Dates
In JavaScript, the Date class is used for MongoDB’s date type. When creating a new Date
object, always call new Date(...), not just Date(...). Calling the constructor as a
function (that is, not including new) returns a string representation of the date, not an
actual Date object. This is not MongoDB’s choice; it is how JavaScript works. If you are
not careful to always use the Date constructor, you can end up with a mishmash of
strings and dates. Strings do not match dates and vice versa, so this can cause problems
with removing, updating, querying…pretty much everything.
For a full explanation of JavaScript’s Date class and acceptable formats for the con‐
structor, see ECMAScript specification section 15.9.
Dates in the shell are displayed using local time zone settings. However, dates in the
database are just stored as milliseconds since the epoch, so they have no time zone
information associated with them. (Time zone information could, of course, be stored
as the value for another key.)
Arrays
Arrays are values that can be interchangeably used for both ordered operations (as
though they were lists, stacks, or queues) and unordered operations (as though they
were sets).
In the following document, the key "things" has an array value:
{"things" : ["pie"3.14]}
18 | Chapter 2: Getting Started
Documents you may be interested
Documents you may be interested