2、db.insert(doc, callback)

作用:

插入文档数据 (文档相当于 mysql 表中的一条记录)。如果文档不包含_id 字段,NeDB 会自动生成一个,该字段是 16 个字符长度的数字字符串。该字段一旦确定,就不能被更改。

参数:

doc: 支持 String, Number, Boolean, Date, null, array 以及 object 类型。如果该字段是 undefined 类型,将不会被保存,这里和 MongoDB 处理方式有点不同,MongoDB 会将 undefined 转换为 null 进行存储。字段名称不能以”$” 开始,也不能包含”.”。

callback(可选): 回调函数,包含参数 err 以及 newDoc,err 是报错,newDoc 是新插入的文档,包含它的_id 字段。

示例

  1. vardoc={hello:'world'
  2. ,n:5
  3. ,today:newDate()
  4. ,nedbIsAwesome:true
  5. ,notthere:null
  6. ,notToBeSaved:undefined // 该字段不会被保存
  7. ,fruits:['apple','orange','pear']
  8. ,infos:{name:'nedb'}
  9. };
  10. db.insert(doc,function(err,newDoc){ // Callback is optional
  11. // newDoc is the newly inserted document, including its _id
  12. // newDoc has no key called notToBeSaved since its value was undefined
  13. });
  14. // 使用array,实现批量插入。一旦其中一个操作失败,所有改变将会回滚。
  15. db.insert([{a:5},{a:42}],function(err,newDocs){
  16. // Two documents were inserted in the database
  17. // newDocs is an array with these documents, augmented with their _id
  18. });
  19. // 如果a字段有唯一性约束,该操作将会执行失败。
  20. db.insert([{a:5},{a:42},{a:5}],function(err){
  21. // err is a 'uniqueViolated' error
  22. // The database was not modified
  23. });