Mongojs 试图推送到数组
Mongojs attempting to push to array
我正在尝试保留我正在处理的所有网站的列表,但我在使用 $push
时遇到了问题。
我用这个创建了一个文档:
accountData = {
'accountid': account_id,
sites: {
'001': 'example.com',
}
};
db.accounts.insert(accountData);
效果很好,我得到:
{ accountid: 'AC654164545', 'sites.001': { '$exists': true } }
我想添加到站点对象。这就是我正在尝试的:
db.accounts.update(
{'accountid': account_id},
{
$push:
{
sites:
{
'002': 'example2.com'
}
}
},
function(err,doc){
console.log(err);
}
);
我得到的错误是:
err: 'The field \'sites\' must be an array but is of type Object in document
我不想用数组创建文档,因为我知道如果我在插入时做了这样的事情:
sites: {
'002': 'example2.com',
'003': 'example3.com',
'004': 'example4.com',
}
它会工作得很好。
如何使用 $push
或任何其他命令添加到 "sites" 对象而不是数组?
它不能是数组,因为我正在使用以下搜索现有网站。
search['sites.' + site_id] = { $exists : true };
好的,我知道问题出在哪里了。
我没有在正确的上下文中考虑问题。
说它需要是一个数组是正确的,所以我在创建(初始插入)时将 "sites" 对象更改为这样的数组,所以它是一个数组:
accountData = {
'accountid': account_id,
sites: [{'001': 'example.com'}]
};
然后,通过使用上面与 $push
完全相同的代码,它可以正常工作。
我正在尝试保留我正在处理的所有网站的列表,但我在使用 $push
时遇到了问题。
我用这个创建了一个文档:
accountData = {
'accountid': account_id,
sites: {
'001': 'example.com',
}
};
db.accounts.insert(accountData);
效果很好,我得到:
{ accountid: 'AC654164545', 'sites.001': { '$exists': true } }
我想添加到站点对象。这就是我正在尝试的:
db.accounts.update(
{'accountid': account_id},
{
$push:
{
sites:
{
'002': 'example2.com'
}
}
},
function(err,doc){
console.log(err);
}
);
我得到的错误是:
err: 'The field \'sites\' must be an array but is of type Object in document
我不想用数组创建文档,因为我知道如果我在插入时做了这样的事情:
sites: {
'002': 'example2.com',
'003': 'example3.com',
'004': 'example4.com',
}
它会工作得很好。
如何使用 $push
或任何其他命令添加到 "sites" 对象而不是数组?
它不能是数组,因为我正在使用以下搜索现有网站。
search['sites.' + site_id] = { $exists : true };
好的,我知道问题出在哪里了。
我没有在正确的上下文中考虑问题。
说它需要是一个数组是正确的,所以我在创建(初始插入)时将 "sites" 对象更改为这样的数组,所以它是一个数组:
accountData = {
'accountid': account_id,
sites: [{'001': 'example.com'}]
};
然后,通过使用上面与 $push
完全相同的代码,它可以正常工作。