浅谈MongoDB方法使用的区别


  • Lv 1

    一、概述

    在MongoDB中,有些相类似方法的使用是可以对数据有同样的功能,但是彼此间还是有点区别,

    为了在使用过程中避免出现一些报错,在此浅谈几组方法的一点区别

    二、MongoDB方法使用的区别

    1、insert()和save()

    MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

    db.COLLECTION_NAME.insert(document)
    db.COLLECTION_NAME.save(document)

    两者都能够插入数据,如果不指定 _id 字段 ,save() 方法类似于 insert() 方法;如果insert()指定相同定_id,则插入会报错,而save()则会更新该 _id 的数据

    2、limit()和skip()

    如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

    语法如下:

    db.COLLECTION_NAME.find().limit(number)

    我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

    语法如下:

    db.COLLECTION_NAME.find().skip(number)

    当然这两者也是能够同时使用的

    语法如下:

    db.COLLECTION_NAME.find().limit(number).skip(number) 
    或者
    db.COLLECTION_NAME.find().skip(number).limit(number)
    //没有前后顺序的区分,主要看查询数据的需求而自己定

    limit()是指定查看数据量,按默认的顺序来,而skip()也是按顺序来,跳过多少数据量后查看到的数据。

    3、ensureIndex()和createIndex()

    在MongoDB建立索引能提高查询效率,如果没有建立索引,在查询时,MongoDB必须执行全表扫描,在数据量大时,效率差别就很明显

    语法如下:

    db.COLLECTION_NAME.ensureIndex(keys,options)
    db.COLLECTION_NAME.createIndex(keys,options) 

    两者间的区别在在于跟DB版本有关,在一些文档中看到 ,从mongoDB 3.0开始ensureIndex被废弃,使用 createIndex创建索引;

    所以根据自己的DB环境和使用习惯选择使用即可。

    三、总结

    希望通过本文能够对以上几组方法的使用有个清晰的认识,更好的记住在什么时候能够使用正确有效的方法,分享文章给大家,

    大家有什么其他相类似方法的区别可以回复补充,我们彼此学习,相互进步。


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待