【问题标题】:MongoDB: Inserting complex data structuresMongoDB:插入复杂的数据结构
【发布时间】:2018-08-18 16:45:03
【问题描述】:

我已经阅读并搜索了有关 MongoDB 的 JSON-BSON 结构的信息,但我不明白(也找不到)如何将文档插入到文档中以进行查询。

我想学习的是,如果有人想像在学校一样在一个数组中存储一个文档数组:

  const university = mongoose.Schema(
  {
     name : {type : String, require : true, unique : true},
     school : [{
        schoolName : String
    }]
  });

如果我给出类似的名称,那么在文档数组中插入的查询是什么?我是 MongoDB 的新手。

【问题讨论】:

  • 您不应该在更新时引用对象的结构,就像我们在 JavaScript 中使用 JSON 时所做的那样?查看 Mongoose 文档 [mongoosejs.com/docs/api.html] 了解实现您想要的方法。
  • 您确实需要了解 MongoDB 和 mongoose 以及 NoSQL 的工作原理。

标签: javascript mongodb mean-stack


【解决方案1】:

插入数据:

const University = mongoose.model('university')
const university = new University({
  name: 'Harvard',
  school: [
    {name: 'One'},
    {name: 'One'},
  ]
})
university.save(function (err, university) {
  console.log(university)
})

在数组内部查询

const University = mongoose.model('university')

// To look for an element in the array
University.find({ 'school.name': 'One' }, function (err, universities) {
  console.log(universities)
})

// To look for an element in an specific position
University.find({ 'school.0.name': 'One' }, function (err, universities) {
  console.log(universities)
})

在数组中插入一个元素:

为此,必须使用$push 运算符,该运算符允许将值附加到数组。

const University = mongoose.model('university')
University.update(
  { name, 'Harvard' },
  {
    $push: {
      school: {name: 'Three'}
    }
  },
  function (err, universities) {}
)

你可以去https://university.mongodb.com/寻找一些课程,所有课程都是免费的,而且解释得很好。

同时查看mongodbmongoose 的文档会对您有很大帮助。

【讨论】:

  • 如果我得到 { name : {type : String, require : true, unique : true} 会发生什么,学校:[{ schoolName:“Matemathics”,教师:[{name:“Pedro”, id: 20}] }] } 如何插入新教师?这是我真正的问题
  • 那将是您的任务伙伴,只是提示“与 $push 运算符有关”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
相关资源
最近更新 更多