Javascript mongodb insert是否创建新模式

Javascript mongodb insert是否创建新模式,javascript,json,mongodb,monk,database,Javascript,Json,Mongodb,Monk,Database,我得到了一个已经在运行和存储数据的现有mongoDB服务器,假设它包含集合:“name”和“id”。 我使用insert命令存储这些集合。 现在我需要添加一个新集合,比如“地址”。 我是否可以通过使用insert简单地添加“地址””集合? mongoDB是在每次我使用insert时创建一个新的模式,还是只是更新模式?我的意思是,mongoDB会创建一个包含上述三种模式的新模式还是只会用新模式更新现有模式? 我会用现有代码更好地解释自己: var env = { 'User': 'aaa'

我得到了一个已经在运行和存储数据的现有mongoDB服务器,假设它包含集合:“name”和“id”。 我使用
insert
命令存储这些集合。 现在我需要添加一个新集合,比如“地址”。 我是否可以通过使用
insert
简单地添加“地址””集合? mongoDB是在每次我使用
insert
时创建一个新的模式,还是只是更新模式?我的意思是,mongoDB会创建一个包含上述三种模式的新模式还是只会用新模式更新现有模式? 我会用现有代码更好地解释自己:

var env = {
    'User': 'aaa',
    'Pass': '123',
    'stats_a': 'collectionA',
    'db_name': 'localhost:27017/nodedb',
    'proxy_name': 'proxy',
    'proxy_port': 8080
};
var monk = require('monk');
var db = monk(env.db_name);
//now i will get the collection and store data in it
 var CollectionA = db.get(env.stats_a);
// create data to insert...
      CollectionA.insert(data)
现在我想向
var env
添加一个新参数,然后像这样插入:

var env = {
    'User': 'aaa',
    'Pass': '123',
    'stats_a': 'collectionA',
//new collection
        'stats_b': 'collectionB',
//new collection
        'db_name': 'localhost:27017/nodedb',
        'proxy_name': 'proxy',
        'proxy_port': 8080
    };
    var monk = require('monk');
    var db = monk(env.db_name);
    //now i will get the collection and store data in it
     var CollectionA = db.get(env.stats_a);
     var CollectionB = db.get(env.stats_b);
    // create data to insert...
          CollectionA.insert(data)
          CollectionB.insert(data)
如果我使用(假设时间戳存在),更新后的代码是否有效:


谢谢

你的问题中的术语不太正确。但我认为这是对您的请求的一个很好的总结:您有一个mongodb集合,其中包含带有nameid字段的文档。您使用
insert
命令创建了这些文档


您的问题1:“我可以简单地使用insert添加“地址”集合吗?”

我想您是在问是否可以使用
insert
向文档中添加新字段(即地址)

。该命令仅用于插入新文档。如果您使用它进行更新,那么该命令将失败,因为您的\u id键是重复的,或者如果没有提供该id或该id不存在,它将创建一个新文档


您的问题2:“mongoDB是在每次我使用insert时创建一个新模式,还是只是更新模式?”

你的措辞令人困惑。我想你指的是“文档”而不是“模式”

无论如何,如果使用
insert
命令在集合中插入文档,但该集合不存在,则将创建该集合,并将文档插入该新集合

如果集合已存在,则将在集合内创建新文档


您的问题3:“mongoDB会创建一个包含上述三种模式的新模式,还是只会用新模式更新现有模式?”

同样,我认为你指的是“文档”而不是“模式”

使用
insert
mongodb将创建一个新文档,如其他两个问题中所述


摘要

要进行更新,应使用命令。请注意,
update
命令有一个
upsert
参数,如果true没有与查询条件匹配的文档,则该参数将创建一个新文档。这可能对你有帮助

要了解您的术语,请执行以下操作:

  • -类似于关系数据库管理系统中的“表格”;存在于数据库中;可能包含许多文档
  • -mongodb集合中的记录
  • -文档中的名称-值对

好的,谢谢!对不起,我把术语弄错了。我的意思是:如果我在
var evn
中添加一个名为
stats\u b
的新参数,然后使用:
 var retJson = {A: {}, B: {}};
     var CollectionA = db.get(env.stats_a);
        var CollectionB = db.get(env.stats_b);

    CollectionA.findOne({}, {sort: {time_stamp: -1}}, function (err, doc) {
        retJson.A = doc;
        CollectionB.findOne({}, {sort: {time_stamp: -1}}, function (err, doc) {
            retJson.B = doc;
            res.set('Access-Control-Allow-Origin', '*');
            res.send(retJson);
        });
    });