在数据库

时间:2017-12-13 08:46:09

标签: node.js mongodb

我在插入查询时遇到错误。

Error is "db.collection.insert is not a function"

我的数据库架构是这样的

'use strict';
var mongoose = require('mongoose');

//Schema
var ABCSchema = mongoose.Schema({
        sequenceid: {
            type: Number
        },
        A: {
            type: Array,
            default: []
        },
        B: {
            type: Array,
            default: []
        },
        C: {
            type: Array,
            default: []
        },
        D: {
            type: Array,
            default: []
        }
});

var ABC = module.exports = mongoose.model('ABC', ABCSchema);

现在我想输入看起来像这样的数据。 这只是一个人们可以理解我如何存储价值的样本。

{
 "_id" : ObjectId("5a2e2eb9104cce1b58385620"),
 "sequenceid": 1,
 "A" : [ 
        {
            "apple" : "red",
            "count" : 24
        }
    ],
 "B" : [],
 "C" : [],
 "D" : [],
  "__v" : 0
}

现在我想要编码的是这样的

ABC.insert({'sequenceid': 1, 'A': {'apple': 'red', 'count': 24}}, function(error, data){
    console.log(data);
});

2 个答案:

答案 0 :(得分:0)

    'use strict';
    var mongoose = require('mongoose');

    //Schema
    var ABCSchema = mongoose.Schema({
            sequenceid: {
                type: Number
            },
            A: {
                type: Array,
                default: []
            },
            B: {
                type: Array,
                default: []
            },
            C: {
                type: Array,
                default: []
            },
            D: {
                type: Array,
                default: []
            }
    });

    var ABC = module.exports = mongoose.model('ABC', ABCSchema);

   // here now collection is ABC (name of collection)
    ABC.insert({'sequenceid': 1, 'A': [{'apple': 'red', 'count': 24}] }, function(error, data){
        console.log(data);
    });

答案 1 :(得分:0)

正如@Manjeet Thakur指出你试图在"A"处插入的是对象而不是数组

将其更改为数组

{
  "A": [{
    "apple": "red",
    "count": 24
  }],
  "sequenceid": 1
}

您还需要实例化模型并保存它

var abc = new ABC({'sequenceid': 1, 'A': [{'apple': 'red', 'count': 24}]});
abc.save()

//or

ABC.create({'sequenceid': 1, 'A': [{'apple': 'red', 'count': 24}]}, function (err, small) {
  //if (err) return throw err;
  // saved!
})