zoukankan      html  css  js  c++  java
  • Mongodb

    Collection

    A collection is simply a grouping of documents that have the same or a similar purpose.

    A collection is not enforced by a strict schema. Instead, documents in a collection can have a slightly different structure from one another, as needed. 

    Document:

    A document is a representation of a single entity of data in the MongoDB database.

    The records in MongoDB that represent documents are stored as BSON, a lightweight binary form of JSON.

    Write operations are atomic at the document level in MongoDB. 

    If the update causes the document to grow to a size that exceeds the allocated space on disk, MongoDB must relocate that document to a new location on the disk. One way to mitigate document growth is to use normalized objects for properties that can grow frequently.

    mongod:

    This executable starts the MongoDB server and begins listening for database requests on the configured port.

    To stop the MongoDB database from the shell client, use the following commands to switch to the admin database and then shut down the database engine:

    use admin
    db.shutdownServer()

    http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/#clean-shutdown

    If unclean shutdown is detected, delete the data/db/lock file, do mongod --dbpath C:/data/db --repair, then start mongod --dbpath C:/data/db.

    By default httpinterface is off, to view localhost:28017 webpage, you need to start mongod with --httpinterface.

    Shell

    The MongoDB shell is an interactive JavaScript shell that is tightly coupled with the MongoDB data structure.

    JavaScript:

    JavaScript is a typeless language. You do not need to specify in the script what data type the variable is—the interpreter automatically figures out the correct data type for the variable. 

    Define variables: var myString='yes';

    Types: String, Number, Array, Object, Null

    With a .js file, after you launch mongo.exe, you could call load("*.js").

    Access Control db:

    The admindatabase is a special database that provides additional functionality above normal databases. 最开始admin db里没有任何user, 你可以创建user with role userAdminAnyDatabase,这个admin user可以创建专门用来管理数据库的database adminitration accounts,即是users with readWriteAnyDatabase,dbAdminAnyDatabase, and clusterAdmin rights. 

    http://techbus.safaribooksonline.com/book/databases/mongodb/9780133844429/part-i-getting-started-with-nosql-and-mongodb/ch01_html#X2ludGVybmFsX0h0bWxWaWV3P3htbGlkPTk3ODAxMzM4NDQ0MjklMkZjaDA0bGV2MXNlYzJfaHRtbCZxdWVyeT0=

    Manage db:

    Mongo shell vs. Javascript:

    use newDB                                                      myConn=new Mongo("localHost");    newDB = myConn.getDB("newDB");

    newDB.createCollection("newColl")                                                                         newDB.createCollection("myColl");

    db.newColl.insert(doc)

    db.newColl.update(query, update, upsert, multi)

    Mongodb via Java:

    try {
           MongoClient mongoClient = new MongoClient("localhost", 27017);
           mongoClient.setWriteConcern(WriteConcern.JOURNAL_SAFE);
           DB db = mongoClient.getDB("words");
           DBCollection collection = db.getCollection("word_stats");
           System.out.println("Number of Documents: " +
             new Long(collection.count()).toString());
         } catch (Exception e) {
           System.out.println(e);
         }

    Mongodb shell: find({"first":"a", "size": {"$gt": 6}}); 

    Java: BasicDBObject query = new BasicDBObject("first", "a");

    query.append("size", new BasicDBObject("$gt", 6)); myColl.find(query);

    To insert a document, you need to first create a BasicDBObject object that represents the document you want to store:

    BasicDBObject doc1 = new BasicDBObject("name", "Fred");
    WriteResult result = myColl.insert(doc1);

    Remove collection:

    DBCollection collection = myDB.getCollection('word_stats');
    BasicDBObject query = new BasicDBObject("first", "a");
    collection.remove(query);

     

  • 相关阅读:
    HTTP状态码
    MySQL的order by时区分大小写
    CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的实现原理和适用场景
    Map接口
    Python中创建守护进程
    df说磁盘空间满了, du说没有,到底谁是对的
    几种分布式文件系统对比
    Unity:控制粒子特效的移动方向
    创建NuGet包
    NuGet的简单使用
  • 原文地址:https://www.cnblogs.com/chayu3/p/4244778.html
Copyright © 2011-2022 走看看