MongoDB 笔记

1 insert 、create、save区别

  • insert: 主键不存在则正常插入;主键已存在,抛出DuplicateKeyException 异常

  • save: 主键不存在则正常插入;主键已存在则更新

  • insertMany:批量插入,等同于批量执行 insert

  • create:批量保存,等同于循环执行 save

2 链式操作与options配置等效

collection.find({ runtime: { $lt: 15 } }, { sort: { title: 1 }, projection: { _id: 0, title: 1, imdb: 1 }});
collection.find({ runtime: { $lt: 15 } }).sort({ title: 1}).project({ _id: 0, title: 1, imdb: 1 });

3 计数

  • collection.estimatedDocumentCount( ):根据集合元数据返回集合中文档数量的估值(速度更快)

  • collection.countDocuments( ):返回集合中与指定查询匹配的文档数(准确值

4 检索字段的不同值

  • distinct( ):生成一个列表,该列表包含指定文档字段中的每个不同值

  • 检索的文档字段包含数组时,则该方法会将每个元素视为一个单独的值

    const distinctValues = collection.distinct(fieldname, query);

5 查询空缺字段

  • {item:null}查询将匹配包含其值为null的item字段或不包含item字段的文档

    const cursor = db.collection(‘inventory’).find({ item: null });

  • 类型检查

    • {{item:{$ type:10}}查询仅与包含item字段值为null的文档匹配; 即item字段的值为BSON类型为Null(类型编号为10)

    • 常见 BSON TYpe

      MongoDB 笔记_第1张图片

  • 存在检查

    • {item:{$ exists:false}}查询与不包含item字段的文档匹配

你可能感兴趣的:(mongodb,笔记,数据库)