【问题标题】:MongoDB creating, finding from and changing an arrayMongoDB 创建、查找和更改数组
【发布时间】:2015-03-16 18:12:45
【问题描述】:

这是我想在 mongodb 中实现的,但作为 javascript 示例。

var array = [];

//Initiating an array
for(var i = 0; i < 30; i++) {
array[i] = 0;
}

//Changing a value at an index
array[14] = 1;

//Getting a value at an index
console.log(array[4]);

//Swapping Two Variables.
var temp = array[14];
array[14] = array[12];
array[12] = temp;

到目前为止我可以设置一个架构

var schema = new mongoose.Schema({
array: {Number: Number, Value: Number}
});

我可以稍后启动它

schema.statics.name = function(cb) {
var new = new Array({
{Number: 1, Value: 0},
{Number: 2, Value: 0},
...
{Number: 30, Value: 0}
});
 new.save();

我可以循环遍历它们

c.user.array.forEach(function (element) {
console.log(element.Number);
console.log(element.Value);
})

但我无法找到单个值或设置/切换它们。

编程语言中如此简单的东西似乎过于复杂;过去几个小时我一直在尝试,有这么多 {} 和 $'s 让我头疼。

据我所知,我应该使用 .find() 但没有示例说明架构中的内容是如何布局的。

【问题讨论】:

  • 哇,你不能命名变量new。这是一个保留字。
  • 另外,您可能只是想阅读mongoosejs.com/docs/guide.html,我感觉您的大部分困惑来自于尝试一些东西而不阅读文档。
  • 啊,是的,这是假的,我实际上并没有使用这些名称:P 我会阅读感谢链接。

标签: node.js mongoose


【解决方案1】:

架构:

array: [{value: Number}]

可以根据需要多次初始化:

backpack: [{value: 0}, {value:0}, {value:0}]

并且可以像这样访问

.array[1].value

more info on sub docs and children

感谢托马拉克

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多